Maison >base de données >tutoriel mysql >Pourquoi mon application Node.js ne parvient-elle pas à s'authentifier avec MySQL 8.0 ?

Pourquoi mon application Node.js ne parvient-elle pas à s'authentifier avec MySQL 8.0 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 14:29:14184parcourir

Why is My Node.js App Failing to Authenticate with MySQL 8.0?

Problèmes d'authentification Node.js avec MySQL 8.0

Lorsque vous essayez de vous connecter à une base de données MySQL avec le compte root à l'aide de Node.js, certains des problèmes peuvent survenir. Ceci est particulièrement pertinent avec MySQL 8.0, où le plugin d'authentification par défaut est passé de mysql_native_password à caching_sha2_password.

Message d'erreur et cause

Lors de la tentative de connexion à MySQL 8.0 avec une application Node.js, l'erreur suivante peut se produire :

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Cette erreur indique que le Le pilote MySQL Node.js ne peut pas utiliser le nouveau plugin d'authentification introduit dans MySQL 8.0.

Solution de contournement :

Pour résoudre le problème et vous connecter à MySQL 8.0 à l'aide du compte root, le plugin mysql_native_password peut être utilisé à la place du caching_sha2_password par défaut. Ceci peut être réalisé via l'une des méthodes suivantes :

  1. Modifier le compte root existant :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
  1. Créer un nouvel utilisateur avec le plugin souhaité :
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

Solution alternative :

Alternativement, le MySQL officiel Le connecteur Node.js, basé sur le protocole X, peut être utilisé. Ce connecteur prend en charge le 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!

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