Heim >Datenbank >MySQL-Tutorial >Wie können sich Node.js-Anwendungen mit dem Caching-SHA2-Passwort von MySQL 8.0 authentifizieren?
Node.js-Authentifizierungsprobleme beim Herstellen einer Verbindung zu MySQL 8.0
MySQL 8.0 führt einen neuen Authentifizierungsmechanismus ein, der für Node.js-Programme beim Herstellen einer Verbindung Schwierigkeiten bereitet die Datenbank. Die in früheren MySQL-Versionen verwendete Legacy-Authentifizierungsmethode wird standardmäßig nicht mehr unterstützt.
Diskrepanz beim Authentifizierungsmechanismus
MySQL 5.7 verwendete das mysql_native_password-Plugin zur Authentifizierung, während MySQL 8.0 es verwendet caching_sha2_password. Den Node.js-Community-Treibern fehlen derzeit kompatible Mechanismen für das neuere Plugin.
Workarounds für Node.js
Um dieses Problem zu umgehen, gibt es zwei mögliche Workarounds:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Dadurch wird das Root-Konto so geändert, dass es die alte Authentifizierungsmethode verwendet.
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Dadurch wird ein separater Benutzer mit dem Legacy erstellt Plugin.
Alternative Option mit MySQL-Connector
Eine andere Lösung besteht in der Verwendung des offiziellen MySQL Node.js-Connectors. Dieser Connector nutzt das Problem innerhalb der Community-Node.js-Treiber. Allerdings werden Aktualisierungen voraussichtlich einige Zeit in Anspruch nehmen.
Das obige ist der detaillierte Inhalt vonWie können sich Node.js-Anwendungen mit dem Caching-SHA2-Passwort von MySQL 8.0 authentifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!