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.
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';
问题是您的帐户没有连接到数据库的权限。
您的命令是授予权限,但是,您需要帐户的密码哈希。
获取您帐户运行的密码哈希
然后将该输出通过管道传输到此命令的密码哈希部分
% 字符是通配符,因此它允许您从任何 IP 地址连接到数据库。为了提高安全性,您可以将其限制为仅您的 IP 地址
希望这有帮助。