Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Node.js kann sich nicht bei MySQL 8.0 authentifizieren

MySQL 8.0 verwendet ein neues Standard-Authentifizierungs-Plugin - caching_sha2_password - während MySQL 5.7 ein anderes verwendete - mysql_native_password . Derzeit unterstützen die Community-Node.js-Treiber für MySQL keine kompatiblen clientseitigen Authentifizierungsmechanismen für das neue Server-Plugin.

Eine mögliche Problemumgehung besteht darin, den Typ des Benutzerkontos so zu ändern, dass das alte Authentifizierungs-Plugin verwendet wird:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

Oder erstellen Sie ein anderes, das dasselbe Plugin verwendet:

CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

Es gibt einen Pull Request in Pipeline, um das Problem richtig anzugehen.

Eine weitere Option ist die Verwendung des official MySQL Node.js-Connector (vollständige Offenlegung:Ich bin der leitende Entwickler), der auf X-Protokoll und unterstützt bereits den neuen Authentifizierungsmodus.