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
1. Komponenten und implementierte Funktionen Keep...
In diesem Artikel erfahren Sie zu Ihrer Informati...
Das Betriebssystem Win10 MySQL ist die 64-Bit-ZIP...
Frontend css3.filter kann nicht nur den Graueffek...
Bei einer Website bezieht sich die Benutzerfreundl...
1. Eine statische Seite bedeutet, dass die Webseit...
1. Installieren Sie Apache # yum install -y httpd...
Einleitung: Der Interface-Designer Joshua Porter h...
RGB-Farbtabelle Farbe Englischer Name RGB 16 Farb...
1. Laden Sie mysql-8.0.15 herunter, installieren ...
In diesem Artikel wird der spezifische Code von j...
Der Fehler lautet wie folgt: Nicht abgefangener T...
mysql bereinigt Binlog-Protokolle korrekt Vorwort...
MySQL-Datenbanktabellen können Indizes erstellen,...
Da ich bereits HTML analysiert habe, möchte ich h...