Heim  >  Fragen und Antworten  >  Hauptteil

Beheben Sie Node.js- und MySQL-Verbindungsfehler unter Windows

Zuerst arbeite ich in Windows.

Ich habe die notwendigen Informationen korrekt angegeben (Host, Benutzer, Passwort, Port, Datenbank), aber es ist ein Fehler aufgetreten.

code: 'ER_ACCESS_DENIED_ERROR',
    errno: 1045,
    sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)",
    sqlState: '28000',
    fatal: true

Ich habe viele Möglichkeiten ausprobiert, dieses Problem zu lösen, aber alle sind fehlgeschlagen. Ich weiß nicht, warum eine Neuinstallation von MySQL das Problem vorübergehend gelöst hat. Aber als ich meinen Computer neu startete, trat der Fehler erneut auf. Ich habe es sofort programmiert, mit der Version gespielt und es ausprobiert.

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

MySQL-Server- und Modulversionen

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

Ich habe diese Dinge ausprobiert

P粉794177659P粉794177659241 Tage vor298

Antworte allen(1)Ich werde antworten

  • P粉270891688

    P粉2708916882024-02-22 16:06:05

    问题是您的帐户没有连接到数据库的权限。

    您的命令是授予权限,但是,您需要帐户的密码哈希。

    获取您帐户运行的密码哈希

    USE mysql;
    SELECT Password FROM user WHERE User = 'your Username';

    然后将该输出通过管道传输到此命令的密码哈希部分

    GRANT ALL PRIVILEGES ON *.* TO `your Username`@`%` IDENTIFIED BY PASSWORD 'your password hash' WITH GRANT OPTION

    % 字符是通配符,因此它允许您从任何 IP 地址连接到数据库。为了提高安全性,您可以将其限制为仅您的 IP 地址

    希望这有帮助。

    Antwort
    0
  • StornierenAntwort