Heim  >  Artikel  >  Datenbank  >  Warum erhalte ich „ER_NOT_SUPPORTED_AUTH_MODE'-Fehler beim Herstellen einer Verbindung zu MySQL über Node.js?

Warum erhalte ich „ER_NOT_SUPPORTED_AUTH_MODE'-Fehler beim Herstellen einer Verbindung zu MySQL über Node.js?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 02:14:02294Durchsuche

Why am I Getting

Fehlerbehebung „ER_NOT_SUPPORTED_AUTH_MODE“-Fehler in der MySQL-Node.js-Verbindung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn