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.