Maison  >  Questions et réponses  >  le corps du texte

Résoudre les erreurs de connexion Node.js et MySQL sous Windows

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

Mon code

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}`));

Versions du serveur MySQL et des modules

mysql server : 5.7.38
nodejs : 16.15.1
nodejs mysql : 2.18.1
nodejs express : 4.18.1

J'ai essayé ces choses

P粉794177659P粉794177659241 Il y a quelques jours297

répondre à tous(1)je répondrai

  • P粉270891688

    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 OPTION
    Le 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.

    répondre
    0
  • Annulerrépondre