MySQL 8.0 gebruikt een nieuwe standaard authenticatie-plug-in - caching_sha2_password - terwijl MySQL 5.7 een andere gebruikte - mysql_native_password . Momenteel ondersteunen de community Node.js-stuurprogramma's voor MySQL geen compatibele client-side authenticatiemechanismen voor de nieuwe serverplug-in.
Een mogelijke oplossing is om het type gebruikersaccount te wijzigen om de oude authenticatie-plug-in te gebruiken:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Of maak een andere die dezelfde plug-in gebruikt:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Er is een pull-verzoek in voorbereiding om het probleem goed aan te pakken.
Een andere optie is om de officiële te gebruiken MySQL Node.js-connector (volledige openbaarmaking:ik ben de hoofdontwikkelaar), die is gebaseerd op de X-protocol en ondersteunt al de nieuwe authenticatiemodus.