Vorwort Das MySQL-Modul (Projektadresse ist https://github.com/mysqljs/mysql) ist ein in JavaScript geschriebener Open-Source-MySQL-Treiber, der MySQL in Node.js-Anwendungen betreiben kann. Während der Verwendung trat jedoch das Problem „ER_NOT_SUPPORTED_AUTH_MODE“ auf. Dieser Artikel beschreibt die Ursache und Lösung dieses Problems. Fehlermeldung Wenn ich versuche, mithilfe des MySQL-Moduls eine Verbindung zu MySQL 8 herzustellen, erhalte ich die folgende Fehlermeldung: D:\ArbeitsbereichGithub\nodejs-book-samples\samples\mysql-demo\index.js:17 Fehler auslösen; ^ Fehler: ER_NOT_SUPPORTED_AUTH_MODE: Der Client unterstützt das vom Server angeforderte Authentifizierungsprotokoll nicht. Erwägen Sie ein Upgrade des MySQL-Clients bei Handshake.Sequence._packetToError (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) bei Handshake.ErrorPacket (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18) bei Protocol._parsePacket (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:291:23) bei Parser._parsePacket (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Parser.js:433:10) bei Parser.write (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Parser.js:43:10) bei Protocol.write (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:38:16) bei Socket.<anonym> (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\Connection.js:91:28) bei Socket.<anonym> (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\Connection.js:525:10) bei Socket.emit (events.js:196:13) bei addChunk (_stream_readable.js:290:12) -------------------- bei Protocol._enqueue (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:144:48) bei Protocol.handshake (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:51:23) bei Connection.connect (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\Connection.js:119:18) bei Objekt.<anonym> (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\index.js:12:12) bei Module._compile (internal/modules/cjs/loader.js:759:30) bei Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) bei Module.load (intern/modules/cjs/loader.js:628:32) bei Function.Module._load (intern/modules/cjs/loader.js:555:12) bei Function.Module.runMain (intern/modules/cjs/loader.js:826:10) bei internal/main/run_main_module.js:17:11 Fehlerursache Der Grund für diesen Fehler liegt darin, dass das neueste MySQL-Modul die Verschlüsselungsmethode „caching_sha2_password“ von MySQL 8 derzeit nicht vollständig unterstützt und „caching_sha2_password“ die Standardverschlüsselungsmethode in MySQL 8 ist. Daher verwendet der folgende Befehl standardmäßig die Verschlüsselungsmethode „caching_sha2_password“ und das Konto und das Kennwort können nicht im MySQL-Modul verwendet werden. mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456'; Abfrage OK, 0 Zeilen betroffen (0,12 Sek.) Problemumgehung Die Lösung besteht darin, das Kennwort des Root-Benutzers zu ändern und die Verschlüsselungsmethode anzugeben, die das MySQL-Modul unterstützen kann: mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password DURCH '123456'; Abfrage OK, 0 Zeilen betroffen (0,12 Sek.) Die obige Anweisung zeigt, dass die Verschlüsselungsmethode mit „mysql_native_password“ angegeben ist. Diese Methode wird vom MySQL-Modul unterstützt. Führen Sie die Anwendung erneut aus. Sie sehen die folgende Konsolenausgabe: $ Knotenindex.js Das Ergebnis ist: RowDataPacket { user_id: 1, username: 'Benutzername' } Darunter ist „RowDataPacket { user_id: 1, username: '老卫' }“ das Ergebnis der Datenbankabfrage. Quellcode Die Beispiele in diesem Abschnitt finden Sie in der Anwendung „mysql-demo“ unter https://github.com/waylau/nodejs-book-samples. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Das WeChat-Applet implementiert eine einfache handschriftliche Signaturkomponente
>>: Detaillierte Erläuterung des Browser-Negotiation-Cache-Prozesses basierend auf nginx
Beschränken Sie input Eingabefeld auf reine Zahle...
Wir alle kennen die MySQL-Funktion count(), mit d...
1. Das Konzept von CSS: (Cascading Style Sheet) V...
Das CSS-Zählerattribut wird von fast allen Browse...
Inhaltsverzeichnis 1. Nginx implementiert das Las...
Vorwort Ich glaube, dass die Syntax von MySQL nic...
Frage Als ich heute eine Projektfunktion schrieb,...
Zum Ausführen von Docker sind Root-Rechte erforde...
ModSecurity ist ein leistungsstarkes Paketfiltert...
Inhaltsverzeichnis 1. Strombegrenzungsalgorithmus...
emmm, der Name ist nur eine zufällige Vermutung 2...
Inhaltsverzeichnis 1. Installieren Sie ESXi 2. ES...
Diashows sieht man häufig auf Webseiten. Sie enth...
Inhaltsverzeichnis Das Wesentliche beim QR-Code-L...
Es gibt eine andere Baumstruktur Javascript-Objek...