Mysql
 sql >> Base de données >  >> RDS >> Mysql

Node.js ne peut pas s'authentifier auprès de MySQL 8.0

MySQL 8.0 utilise un nouveau plugin d'authentification par défaut - caching_sha2_password - alors que MySQL 5.7 en utilisait un autre - mysql_native_password . Actuellement, les pilotes Node.js de la communauté pour MySQL ne prennent pas en charge les mécanismes d'authentification côté client compatibles pour le nouveau plug-in de serveur.

Une solution de contournement possible consiste à modifier le type de compte utilisateur pour utiliser l'ancien plug-in d'authentification :

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

Ou créez-en un autre qui utilise le même plugin :

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

Il y a une pull request en préparation pour résoudre correctement le problème.

Une autre option consiste à utiliser le officiel Connecteur MySQL Node.js (divulgation complète :je suis le développeur principal), qui est basé sur le Protocole X et prend déjà en charge le nouveau mode d'authentification.