Mysql
 sql >> Database >  >> RDS >> Mysql

Node.js non può autenticarsi su MySQL 8.0

MySQL 8.0 utilizza un nuovo plug-in di autenticazione predefinito:caching_sha2_password - mentre MySQL 5.7 ne usava uno diverso - mysql_native_password . Attualmente, i driver della community Node.js per MySQL non supportano i meccanismi di autenticazione lato client compatibili per il nuovo plug-in del server.

Una possibile soluzione consiste nel modificare il tipo di account utente per utilizzare il vecchio plug-in di autenticazione:

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

Oppure creane uno diverso che utilizzi lo stesso plugin:

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

C'è una richiesta pull in cantiere per affrontare adeguatamente il problema.

Un'altra opzione è utilizzare il ufficiale Connettore MySQL Node.js (divulgazione completa:sono lo sviluppatore principale), che si basa su Protocollo X e supporta già la nuova modalità di autenticazione.