Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens des erreurs « ER_NOT_SUPPORTED_AUTH_MODE » lors de la connexion à MySQL à partir de Node.js ?

Pourquoi est-ce que j'obtiens des erreurs « ER_NOT_SUPPORTED_AUTH_MODE » lors de la connexion à MySQL à partir de Node.js ?

Mary-Kate Olsen
Libérer: 2024-11-10 02:14:02
original
331 Les gens l'ont consulté

Why am I Getting

Dépannage de l'erreur "ER_NOT_SUPPORTED_AUTH_MODE" dans la connexion MySQL-Node.js

L'erreur "ER_NOT_SUPPORTED_AUTH_MODE" indique que le client Node.js ne peut pas établir de connexion avec le serveur MySQL en raison d'un protocole d'authentification non pris en charge. Ce problème survient lorsque le serveur MySQL nécessite une méthode d'authentification spécifique que le client ne prend pas en charge.

Dans votre cas, vous avez effectué une mise à niveau de MariaDB vers MySQL. Cependant, l'extrait de connexion JavaScript que vous utilisez utilise peut-être toujours le protocole d'authentification MariaDB, qui n'est pas pris en charge par MySQL 8.0 et supérieur.

Solution :

Pour résoudre Pour résoudre ce problème, vous devez mettre à niveau votre client Node.js pour prendre en charge le protocole d'authentification natif MySQL. Ce protocole est compatible avec les serveurs MariaDB et MySQL.

Pour MySQL version 8.0 et supérieure, utilisez la commande suivante pour mettre à jour la méthode d'authentification de l'utilisateur root :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Copier après la connexion

Remplacez "root" par le nom d'utilisateur et le "mot de passe" avec le mot de passe souhaité.

Une fois la méthode d'authentification mise à jour, exécutez la commande suivante pour activer les modifications :

FLUSH PRIVILEGES;
Copier après la connexion

Maintenant, modifiez votre extrait de connexion JavaScript pour utiliser le protocole natif MySQL :

var mysql = require('mysql');

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'foobarDb',
    authPlugin: 'mysql_native_password' // specify the MySQL native authentication protocol
});
Copier après la connexion

Cela devrait résoudre l'erreur "ER_NOT_SUPPORTED_AUTH_MODE" et vous permettre de vous connecter à la base de données MySQL depuis votre serveur Node.js.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal