Problème d'authentification Node.js avec MySQL 8.0
La récente mise à niveau vers MySQL 8.0 a introduit un défi d'authentification pour les applications Node.js se connectant à Bases de données MySQL. MySQL 8.0 utilise un nouveau plugin d'authentification par défaut, caching_sha2_password, que les pilotes Node.js de la communauté actuelle pour MySQL ne disposent pas de mécanismes d'authentification côté client compatibles pour prendre en charge.
Problème :
Les applications Node.js ne parviennent pas à s'authentifier avec succès auprès des bases de données MySQL 8.0, ce qui entraîne un Erreur « ER_NOT_SUPPORTED_AUTH_MODE » lors de l'authentification en raison d'une incompatibilité dans les plugins d'authentification.
Solution de contournement :
Pour contourner ce problème, vous avez deux options :
Modifier l'authentification du compte utilisateur Plugin :
Modifiez le compte utilisateur « root » existant ou créez un nouveau compte utilisateur pour utiliser le plugin d'authentification précédent, mysql_native_password. Ceci peut être réalisé via les commandes SQL suivantes :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass'; CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Utilisez le connecteur MySQL Node.js officiel :
Utilisez le MySQL officiel Connecteur Node.js, basé sur le protocole X et supportant nativement le nouveau mode d'authentification utilisé par MySQL 8.0.
Résolution future :
Une pull request est actuellement en développement pour résoudre ce problème dans la communauté des pilotes Node.js pour MySQL. Une fois fusionnée et publiée, cette mise à jour fournira une prise en charge appropriée du nouveau mode d'authentification dans MySQL 8.0.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!