Maison >base de données >tutoriel mysql >Comment les applications Node.js peuvent-elles s'authentifier avec le mot de passe SHA2 de mise en cache de MySQL 8.0 ?
Problèmes d'authentification Node.js lors de la connexion à MySQL 8.0
MySQL 8.0 introduit un nouveau mécanisme d'authentification qui pose des difficultés aux programmes Node.js se connectant à la base de données. La méthode d'authentification héritée utilisée dans les versions précédentes de MySQL n'est plus prise en charge par défaut.
Différence entre les mécanismes d'authentification
MySQL 5.7 utilisait le plugin mysql_native_password pour l'authentification, tandis que MySQL 8.0 utilise caching_sha2_password. Les pilotes de la communauté Node.js ne disposent actuellement pas de mécanismes compatibles avec le nouveau plugin.
Solutions de contournement pour Node.js
Pour contourner ce problème, il existe deux solutions de contournement potentielles :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Cela modifie le compte root pour utiliser l'ancienne méthode d'authentification.
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Cela crée un utilisateur distinct avec l'héritage plugin.
Option alternative utilisant le connecteur MySQL
Une autre solution consiste à utiliser le connecteur officiel MySQL Node.js. Ce connecteur exploite le protocole X et prend en charge le nouveau mécanisme d'authentification prêt à l'emploi.
Support et mises à jour de la communauté
Une pull request à venir vise à résoudre ce problème. problème au sein de la communauté des pilotes Node.js. Cependant, les mises à jour devraient prendre un certain temps.
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!