Node.js-Authentifizierungsprobleme mit MySQL 8.0
Bestimmt beim Versuch, eine Verbindung zu einer MySQL-Datenbank mit dem Root-Konto über Node.js herzustellen Es können Probleme auftreten. Dies ist besonders relevant für MySQL 8.0, wo das Standard-Authentifizierungs-Plugin von mysql_native_password in caching_sha2_password geändert wurde.
Fehlermeldung und Ursache
Beim Versuch, mit einer Node.js-Anwendung eine Verbindung zu MySQL 8.0 herzustellen, Der folgende Fehler kann auftreten:
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Dieser Fehler weist darauf hin, dass die Der MySQL-Treiber von Node.js kann das neue Authentifizierungs-Plugin, das in MySQL 8.0 eingeführt wurde, nicht verwenden.
Problemumgehung:
Um das Problem zu beheben und über das Root-Konto eine Verbindung zu MySQL 8.0 herzustellen, kann das Plugin mysql_native_password dies tun anstelle des standardmäßigen caching_sha2_password verwendet werden. Dies kann durch eine der folgenden Methoden erreicht werden:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Alternative Lösung:
Alternativ das offizielle MySQL Der auf dem X-Protokoll basierende Node.js-Connector kann genutzt werden. Dieser Connector unterstützt den neuen Authentifizierungsmodus in MySQL 8.0.
Das obige ist der detaillierte Inhalt vonWarum kann sich meine Node.js-App nicht bei MySQL 8.0 authentifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!