Besoin d'assistance pour l'accès de base de données mysql à l'aide de node.js
Je suis en train de lancer un nœud simple exemple pour accéder à une base mysql et obtiens l'erreur suivante-Erreur: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'ubuntu.local' (using password: YES)
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '192.168.0.12',
user : 'root',
password : 'password',
database : 'app'
});
connection.connect();
connection.query('SELECT * from users', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0]);
});
connection.end();
Ci-dessus est le code pour accéder à la base de données mysql à l'aide de nœud.js.Des suggestions quant à ce que j'ai fait de mal, merci d'avance.
- pouvez-vous vous connecter à mysql à partir de la console ?
mysql -h 192.168.0.12 -u root -p app
(entrer le mot de passe après la demande) - plus probablement, vous devez définir l'hôte "localhost"
- nan je ne peut pas exécuter la commande que vous m'avez donné, mais si je remplace l'ip addr avec localhost il travaille à partir de la ligne de commande, mais dans le nœud de script j'obtiens l'erreur suivante-connect ECONNREFUSED.
- hôte mysql sur le même serveur où le noeud de fonctionner ?
- vérifiez les journaux de MySQL pour vous assurer que vous êtes en tentant de s'authentifier avec l'identité que vous avez entré (en particulier que les noms d'hôte de match)
- connexion à mysql console et lancez
GRANT ALL ON app.* to 'root'@'ubuntu.local' identified with 'password';
et recommencez votre première approche - Merci beaucoup travaillé!!!! Vous pouvez publier qu'un sna à cette question?
- Merci @eicto! Ceci a également permis de ER_ACCESS_DENIED_ERROR à l'aide de nodejs et MariaDB.
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire où j'avais la même erreur.
La réponse pour moi a fini par être que j'ai été en utilisant un autre port. Par défaut, mysql attend un port 3306, mais j'ai été en utilisant MAMP, où le serveur MySQL port a été spécifié comme 8889. Dès que j'ai ajouté une définition du port à ma connexion de base de données, il était beau:
NOTE: C'est pour Mac avec MAMP, n'ai pas essayé sur ubuntu ou Windows.
J'ai été exactement la même question. Je n'étais pas en mesure de se connecter via le module mysql en nodejs, mais a été en mesure de se connecter via le client mysql dans le terminal (mysql -u root -p1111 -h localhost mydb)
Il s'avère que le module mysql convertit "localhost" à l'adresse 127.0.0.1.
Ce ne serait pas du travail via l' (mysql -u root -p1111 -h 127.0.0.1 mydb).
Voir Question 734
J'ai donc dû définir un mot de passe pour l'adresse 127.0.0.1 dans MySQL et il a résolu le problème.
Instructions
Se connecter à mysql via la console:
Et Exécuter
Source
mysql -u root -p mysql
obtenez cette erreurAccess denied for user 'root'@'localhost' (using password: YES)
J'ai été sur ce problème depuis un long moment maintenant, et parmi tous les forums que j'ai fait, une solution simple pour résoudre mon problème. Mon mot de passe était avec certains caractères spéciaux. Je l'ai changer pour un plus simple comme "onlyletters" et il fonctionne parfaitement. Probablement un problème d'encodage dans le nodejs module mysql, je peux... Espérer qu'il allait aider certains d'entre vous les gars...
J'ai eu un problème similaire,mon nodejs projet.J'ai été en utilisant knex.js pour querybuilder et sa configuration.
Ce problème se produit lorsque la valeur de l'hôte est 127.0.0.1,quand j'ai changé de 127.0.0.1 localhost,le problème est disparu.
En fait la solution est plus facile que vous le pensez. Changement de l'hôte à l'adresse 127.0.0.1 pour la connexion de base de données.