web-dev-qa-db-fra.com

ER_NOT_SUPPORTED_AUTH_MODE - serveur MySQL

J'ai configuré une base de données MySQL. Lorsque j'essaie d'y accéder via mon serveur Node JS, le message d'erreur s'affiche. 

"ER_NOT_SUPPORTED_AUTH_MODE: Le client ne prend pas en charge l'authentification Protocole demandé par le serveur; envisagez de mettre à niveau le client MariaDB"

ce qui est étrange puisque j'ai déjà désinstallé MariaDB et installé MySQL sous Homebrew. 

Voici ma tentative de connexion:

var mysql = require('mysql');

var connection = mysql.createConnection({
  Host     : 'localhost',
  user     : 'root',
  password : '********',
  database : 'vod_bill_database'
}); 

Des idées? Merci

7
João Gouveia

J'ai pensé que dans certaines versions de MySQL, ils avaient l'authentification nécessaire pour établir une connexion un peu gâchée. Tout ce que j'avais à faire, c'était d'ajouter la ligne "insecureAuth: true" à ma tentative de connexion.

var connection = mysql.createConnection({
  Host     : 'localhost',
  user     : 'root',
  password : '********',
  database : 'vod_bill_database',
  insecureAuth : true
}); 

Cela fonctionne bien maintenant.

3
João Gouveia

Pour le moment, la version 8.0 est un moyen de changer le plugin: Utilisez cet exemple:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
33
Archil Labadze

 enter image description here

Reconfigurer la méthode d’authentification, où vous sélectionnez le support des mots de passe de type hérité pour

Raison de l'erreur

* Vous avez installé la dernière version de Mysql 8.0, il dispose d’une méthode d’authentification différente. dégradant 5.6 ou 5.1 est une solution simple

5
Vinayak Shedgeri
var connection = mysql.createConnection({
  Host     : 'localhost',
  user     : 'root',
  password : '********',
  database : 'vod_bill_database',
  port : 3308 
}); 

J'ai eu la même erreur et depuis que j'ai changé mon port dans phpmyadmin de 3306 à 3308 donc ici aussi j'ai dû écrire le port: 3308 et cela a commencé à fonctionner.

0
Arshil

Merci @ Vinayak Shedgeri J'ai résolu l'erreur en reconfigurant les étapes du "serveur MySQL" avec "l'installateur MySQL" . les étapes avec "l'installateur MySQL

0
Pedriux

pour surmonter cette erreur, utilisez le code suivant:

var connectionString = 'mysql://*root:*password@*localhost/*database?charset=utf8_general_ci&timezone=-0700'; 
var connection= mysql.createConnection(connectionString); 

mais assurez-vous que vous avez modifié les marques * dans connectionString en fonction de votre configuration. 

0
Mohammad Yousefi