首先,我在 Window 中工作。
我准确地提供了必要的信息(主机、用户、密码、端口、数据库),但它给出了错误。
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)",
sqlState: '28000',
fatal: true
我尝试了很多方法来解决这个问题,但都失败了。不知道为什么重新安装MySQL就暂时解决了。但是当我重新启动计算机时,又出现错误。 我立即编写代码、使用版本并进行尝试。
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';Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
问题是您的帐户没有连接到数据库的权限。
您的命令是授予权限,但是,您需要帐户的密码哈希。
获取您帐户运行的密码哈希
然后将该输出通过管道传输到此命令的密码哈希部分
% 字符是通配符,因此它允许您从任何 IP 地址连接到数据库。为了提高安全性,您可以将其限制为仅您的 IP 地址
希望这有帮助。