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
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.
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'
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.
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
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.