sql >> Databasteknik >  >> RDS >> Mysql

Node.js kan inte autentisera till MySQL 8.0

MySQL 8.0 använder ett nytt standardinsticksprogram för autentisering - caching_sha2_password - medan MySQL 5.7 använde en annan - mysql_native_password . För närvarande stöder gemenskapens Node.js-drivrutiner för MySQL inte kompatibla autentiseringsmekanismer på klientsidan för det nya serverpluginet.

En möjlig lösning är att ändra typen av användarkonto för att använda den gamla autentiseringsplugin:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

Eller skapa en annan som använder samma plugin:

CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

Det finns en pull-begäran i pipeline för att korrekt lösa problemet.

Ett annat alternativ är att använda den officiella MySQL Node.js-anslutningen (fullständig information:Jag är den ledande utvecklaren), som är baserad på X-protokoll och stöder redan det nya autentiseringsläget.



  1. Implementera en-till-noll-eller-en-relation i SQL Server

  2. DATEDIFF() vs DATEDIFF_BIG() i SQL Server:Vad är skillnaden?

  3. MySQL - Gör ett befintligt fält unikt

  4. sqlplus hur man hittar information om den för närvarande anslutna databassessionen