You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize连接MySQL报错:Access denied for user 'someuser'@'localhost'

问题描述

按教程安装配置MySQL后,修改/etc/mysql/mysql.conf.d/mysqld.cnf中的bind-address为0.0.0.0,本地MySQL Workbench可正常连接数据库,但Node.js通过Sequelize连接时出现权限错误。

代码与配置

Sequelize连接代码

import { Sequelize, DataTypes } from "sequelize";
import { logger } from "../utils/index.js";

const sequelize = new Sequelize({
  host: process.env.DB_HOST,
  port: process.env.DB_PORT,
  database: process.env.DB_NAME,
  username: process.env.DB_USER,
  password: process.env.DB_PASS,
  dialect: "mysql",
  logging: (msg) => logger(msg, "database"),
});

sequelize.authenticate().then(() => {
  console.log('Connection has been established successfully.');
}).catch((error) => {
  console.error('Unable to connect to the database: ', error);
});

.env配置

DB_HOST=localhost
DB_USER=someuser
DP_PASS=Somepassword@
DB_PORT=3306
DB_NAME=dbname

错误日志核心信息

Unable to connect to the database:  AccessDeniedError [SequelizeAccessDeniedError]: Access denied for user 'someuser'@'localhost' (using password: NO)

环境信息

  • Node.js依赖:sequelize 6.33.0、mysql2 3.6.2
  • MySQL版本:mysql Ver 8.0.35-0ubuntu0.23.04.1 for Linux on x86_64 ((Ubuntu))
  • 应用与数据库部署在同一服务器,Workbench连接正常

解决方案

1. 修复.env变量名错误

错误日志明确提示using password: NO,说明Sequelize未获取到密码值。检查.env文件发现密码变量名写成了DP_PASS,但代码中使用的是process.env.DB_PASS,两者不匹配。

修改.env文件:

DB_HOST=localhost
DB_USER=someuser
DB_PASS=Somepassword@  # 将DP_PASS改为DB_PASS
DB_PORT=3306
DB_NAME=dbname

修改后重启应用,重新测试连接。

2. 验证MySQL用户本地连接权限(若第一步无效)

如果密码变量修复后仍报错,需确认someuser拥有从localhost连接的权限:

  1. 登录MySQL:
mysql -u root -p
  1. 查看用户权限条目:
SELECT user, host FROM mysql.user WHERE user = 'someuser';
  1. 若不存在someuser@localhost条目,创建并授权:
CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'Somepassword@';
GRANT ALL PRIVILEGES ON dbname.* TO 'someuser'@'localhost';
FLUSH PRIVILEGES;

3. 切换连接地址为127.0.0.1

MySQL对localhost优先使用socket连接,若socket权限存在问题,可修改.env中的DB_HOST:

DB_HOST=127.0.0.1

内容的提问来源于stack exchange,提问作者lolz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:40:57