Windows环境Node.js连接MySQL报1045访问拒绝错误问题求助
问题描述
运行环境为Windows系统,已准确配置host、user、password、port、database等MySQL连接必填参数,发起连接时抛出如下错误:
code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)", sqlState: '28000', fatal: true
错误核心含义:本机root用户访问数据库被拒绝,连接请求已携带校验密码
试过多种排查方案均未解决问题:仅重装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服务端:5.7.38 Node.js运行环境:16.15.1 Node.js MySQL驱动包:2.18.1 Node.js Express框架:4.18.1
已尝试的解决手段
- 修改root用户密码、创建新的数据库用户开展连接测试
- 执行SQL语句
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';修改用户认证方式 - 重装Node.js与npm运行环境
- 重装MySQL服务
内容的提问来源于stack exchange,提问作者Cubite
相关产品推荐
相关产品推荐

