Problèmes d'authentification Node.js avec MySQL 8.0
Les applications Node.js précédemment connectées aux bases de données MySQL à l'aide du compte root peuvent rencontrer des erreurs d'authentification lors de la mise à niveau vers MySQL 8.0 en raison de modifications apportées au plugin d'authentification par défaut.
Comprendre les Problème
MySQL 8.0 utilise désormais caching_sha2_password comme plugin d'authentification par défaut, tandis que MySQL 5.7 utilisait mysql_native_password. Certains pilotes Node.js pour MySQL ne prennent actuellement pas en charge les mécanismes d'authentification compatibles pour le nouveau plugin.
Solutions possibles
Pour résoudre ce problème, envisagez d'implémenter l'une des solutions suivantes solutions de contournement :
Modifier le compte utilisateur :
Modifier le compte utilisateur root pour utiliser l'ancien plugin mysql_native_password :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Créer un nouvel utilisateur :
Créer un nouveau compte utilisateur qui utilise le plugin mysql_native_password :
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Conclusion
Le problème d'authentification entre Node.js et MySQL 8.0 découlent du changement du plugin d'authentification par défaut. Les solutions de contournement fournies permettent aux utilisateurs de maintenir leurs connexions MySQL en utilisant soit l'ancien plugin, soit le connecteur MySQL officiel. Il est recommandé de mettre en place une solution permanente en gardant un œil sur les mises à jour des pilotes Node.js pour MySQL.
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!