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
Bibliotheksbetrieb Abfrage 1.SHOW DATABASE; ----A...
Portzuordnung Wenn vor dem Start des Docker-Conta...
Beim Einfügen von Daten stellte ich fest, dass ic...
Inhaltsverzeichnis 1. Einleitung 2. Grundkonzepte...
In diesem Artikel erfahren Sie, wie Sie Python3.6...
Einführung: Dieser Artikel verwendet das von reac...
Vorwort Vor kurzem hat unsere Firma MBP konfiguri...
1. Übersicht 1.1 Grundlegende Konzepte: Docker is...
Vorwort Vor Kurzem wurde ein Teil der Geschäftstä...
In diesem Artikelbeispiel wird der spezifische Ja...
Inhaltsverzeichnis Nginx-Lastausgleichskonfigurat...
Inhaltsverzeichnis Vorwort Globale Sperre Tabelle...
In diesem Artikelbeispiel wird der spezifische Co...
Werfen wir zunächst einen Blick auf die allgemein...
Die Zeit vergeht wie im Flug und in nur sechs Tag...