Node.js impossible de s'authentifier auprès de MySQL 8.0
Dans les applications Node.js, la connexion aux bases de données MySQL a rencontré des difficultés après la mise à niveau vers MySQL 8.0. Ce problème provient du compte root utilisant la nouvelle méthode de hachage caching_sha2_password.
Différences entre les mécanismes d'authentification
MySQL 8.0 a introduit un nouveau plugin d'authentification par défaut, caching_sha2_password, alors que MySQL 5.7 utilisait mysql_native_password. Malheureusement, les pilotes Node.js actuels pour MySQL ne prennent pas en charge les mécanismes d'authentification compatibles côté client.
Solutions de contournement pour établir la connexion
Une solution de contournement consiste à modifier le compte utilisateur root en utilisez l'ancien plugin mysql_native_password :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Vous pouvez également créer un nouvel utilisateur avec la même authentification plugin :
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Connecteur alternatif
Le connecteur officiel MySQL Node.js, basé sur le protocole X, prend en charge le nouveau mode d'authentification et fournit une alternative viable.
Pull Request for Résolution
Une pull request est actuellement en cours pour résoudre ce problème problème au sein de la communauté des pilotes MySQL.
Conclusion
Les applications Node.js peuvent se connecter avec succès à MySQL 8.0 en utilisant les solutions de contournement mentionnées ci-dessus ou en utilisant le nœud MySQL officiel. js, qui offre un support natif pour le nouveau mécanisme d'authentification.
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!