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
Die Datenbankmigration ist ein Problem, auf das w...
<br />Durch die Frame-Struktur ist die gleic...
Wann ist die Installation durchzuführen? Wenn Sie...
Hier ist eine Fallstudie zu Ihrer Information, wi...
In diesem Artikel werden hauptsächlich Codebeispi...
Kurz gesagt: Wenn Sie einen Cloud-Server eines be...
Vorwort Kürzlich wurden Daten online falsch bearb...
Inhaltsverzeichnis Was ist ein Plugin Plugins sch...
IE10 bietet eine Schaltfläche zum schnellen Lösche...
MySQL-Downloads für alle Plattformen sind unter M...
Im Projekt ist es erforderlich, den Breiten- und ...
Scrcpy-Installation snap install scrcpy Installat...
Like bedeutet auf Chinesisch „wie“, aber wenn es ...
Seite: Basis: <Vorlage> <div Klasse=&quo...
Hier verwende ich Samba (Filesharing-Dienst) v4.9...