Maison > Questions et réponses > le corps du texte
Tout d’abord, je travaille sous Window.
J'ai fourni les informations nécessaires avec précision (hôte, utilisateur, mot de passe, port, base de données) mais cela a donné une erreur.
code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)", sqlState: '28000', fatal: true
J'ai essayé de nombreuses façons de résoudre ce problème, mais toutes ont échoué. Je ne sais pas pourquoi la réinstallation de MySQL a temporairement résolu le problème. Mais lorsque j'ai redémarré mon ordinateur, l'erreur est réapparue. Je l'ai immédiatement codé, joué avec la version et essayé.
const express = require('express'); const app = express(); const mysql = require('mysql'); const port = process.env.PORT || 4000; const connection = mysql.createConnection({ host: "localhost", user: "root", password: "123456", port: "3306", database: "study01" }); console.log(connection); connection.connect(); app.listen(app.get('port'), () => console.log(`Listening on port ${port}`));
mysql server : 5.7.38 nodejs : 16.15.1 nodejs mysql : 2.18.1 nodejs express : 4.18.1
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '123456';
P粉2708916882024-02-22 16:06:05
Le problème est que votre compte n'a pas l'autorisation de se connecter à la base de données.
Votre commande accorde des autorisations, cependant, vous avez besoin du hachage du mot de passe du compte.
Obtenez le hachage du mot de passe que votre compte utilise
USE mysql; SELECT Password FROM user WHERE User = 'your Username';
Cette sortie est ensuite transmise à la partie de hachage du mot de passe de cette commande
GRANT ALL PRIVILEGES ON *.* TO `your Username`@`%` IDENTIFIED BY PASSWORD 'your password hash' WITH GRANT OPTIONLe caractère
% est un caractère générique il vous permet donc de vous connecter à la base de données depuis n'importe quelle adresse IP. Pour plus de sécurité, vous pouvez le restreindre uniquement à votre adresse IP
J'espère que cela vous aidera.