Maison >base de données >tutoriel mysql >Pourquoi mon application Node.JS obtient-elle une erreur « Le client ne prend pas en charge le protocole d'authentification » lors de la connexion à MySQL 8.0 ?

Pourquoi mon application Node.JS obtient-elle une erreur « Le client ne prend pas en charge le protocole d'authentification » lors de la connexion à MySQL 8.0 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 11:11:24375parcourir

Why Does My Node.JS App Get a

Erreur d'authentification MySQL 8.0 : assistance client requise

Lorsque vous tentez d'établir une connexion à une base de données MySQL 8.0 à partir de Node.JS, vous pouvez rencontrez une erreur indiquant : "Le client ne prend pas en charge le protocole d'authentification demandé par le serveur ; envisagez de mettre à niveau le client MySQL." Cette erreur indique un problème de compatibilité entre votre client MySQL et le mécanisme d'authentification du serveur.

Le code Node.JS fourni tente d'établir une connexion avec une authentification non sécurisée, mais cela est incompatible avec le protocole d'authentification par défaut de MySQL 8.0. Pour résoudre ce problème, procédez comme suit :

  1. Exécutez la requête suivante dans MySQL Workbench :

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

    Remplacez 'root' par votre nom d'utilisateur, 'localhost' par votre adresse d'hôte et votre « mot de passe » avec votre mot de passe.

  2. Actualisez les privilèges en utilisant ceci requête :

    flush privileges;
  3. Essayez à nouveau de vous connecter depuis Node.JS.

Si l'erreur persiste, essayez d'exécuter la même requête sans le '@'

ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'password';

Assurez-vous de garder votre client MySQL à jour pour éviter de rencontrer des problèmes d'authentification similaires à l'avenir.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn