Der „ER_NOT_SUPPORTED_AUTH_MODE“-Fehler weist darauf hin, dass der Node.js-Client Aufgrund eines nicht unterstützten Authentifizierungsprotokolls kann keine Verbindung mit dem MySQL-Server hergestellt werden. Dieses Problem tritt auf, wenn der MySQL-Server eine bestimmte Authentifizierungsmethode erfordert, die der Client nicht unterstützt.
In Ihrem Fall haben Sie ein Upgrade von MariaDB auf MySQL durchgeführt. Das von Ihnen verwendete JavaScript-Verbindungs-Snippet verwendet jedoch möglicherweise immer noch das MariaDB-Authentifizierungsprotokoll, das von MySQL 8.0 und höher nicht unterstützt wird.
Lösung:
Zu beheben Bei diesem Problem müssen Sie Ihren Node.js-Client aktualisieren, um das native MySQL-Authentifizierungsprotokoll zu unterstützen. Dieses Protokoll ist sowohl mit MariaDB- als auch mit MySQL-Servern kompatibel.
Für MySQL Version 8.0 und höher verwenden Sie den folgenden Befehl, um die Authentifizierungsmethode des Root-Benutzers zu aktualisieren:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Ersetzen Sie „root“ durch Geben Sie den Benutzernamen und das „Passwort“ mit dem gewünschten Passwort ein.
Sobald die Authentifizierungsmethode aktualisiert wurde, führen Sie den folgenden Befehl aus, um die Änderungen zu aktivieren:
FLUSH PRIVILEGES;
Ändern Sie nun Ihren JavaScript-Verbindungsausschnitt So verwenden Sie das native MySQL-Protokoll:
var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'foobarDb', authPlugin: 'mysql_native_password' // specify the MySQL native authentication protocol });
Dies sollte den Fehler „ER_NOT_SUPPORTED_AUTH_MODE“ beheben und Ihnen ermöglichen, von Ihrem Node.js-Server aus eine Verbindung zur MySQL-Datenbank herzustellen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich „ER_NOT_SUPPORTED_AUTH_MODE'-Fehler beim Herstellen einer Verbindung zu MySQL über Node.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!