MySQL 8.0 използва нов плъгин за удостоверяване по подразбиране - caching_sha2_password - докато MySQL 5.7 използва различен - mysql_native_password . Понастоящем драйверите на общността Node.js за MySQL не поддържат съвместими механизми за удостоверяване от страна на клиента за новия сървърен плъгин.
Възможно решение е да промените типа на потребителския акаунт, за да използвате стария плъгин за удостоверяване:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Или създайте друг, който използва същия плъгин:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Има заявка за изтегляне в процес на правилното разрешаване на проблема.
Друга възможност е да използвате официален MySQL Node.js конектор (пълно разкриване:аз съм водещият разработчик), който се основава на Протокол X и вече поддържа новия режим на удостоверяване.