续集。连接到 mysql 时出错。“用户'someuser'@'localhost'的访问被拒绝(使用密码:NO)”

Sequelize. Error when connecting to mysql. "Access denied for user 'someuser'@'localhost' (using password: NO)"

提问人:lolz 提问时间:11/7/2023 最后编辑:lolz 更新时间:11/7/2023 访问量:42

问:

我按照这些说明安装并配置了mysql。

此外,我在文件中更改了 from,以便能够通过 workbrench 从我的电脑连接。bind-address127.0.0.10.0.0.0/etc/mysql/mysql.conf.d/mysqld.cnf

这是我的 sequalize 代码:

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

npm run start 后的错误日志:

Unable to connect to the database:  AccessDeniedError [SequelizeAccessDeniedError]: Access denied for user 'someuser'@'localhost' (using password: NO)
    at ConnectionManager.connect (/home/ubuntu/api/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:94:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ConnectionManager._connect (/home/ubuntu/api/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:222:24)
    at async /home/ubuntu/api/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32 {
  parent: Error: Access denied for user 'someuser'@'localhost' (using password: NO)
      at Packet.asError (/home/ubuntu/api/node_modules/mysql2/lib/packets/packet.js:728:17)
      at ClientHandshake.execute (/home/ubuntu/api/node_modules/mysql2/lib/commands/command.js:29:26)
      at Connection.handlePacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:478:34)
      at PacketParser.onPacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:97:12)
      at PacketParser.executeStart (/home/ubuntu/api/node_modules/mysql2/lib/packet_parser.js:75:16)
      at Socket.<anonymous> (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:104:25)
      at Socket.emit (node:events:513:28)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Readable.push (node:internal/streams/readable:234:10) {
    code: 'ER_ACCESS_DENIED_ERROR',
    errno: 1045,
    sqlState: '28000',
    sqlMessage: "Access denied for user 'someuser'@'localhost' (using password: NO)",
    sql: undefined
  },
  original: Error: Access denied for user 'someuser'@'localhost' (using password: NO)
      at Packet.asError (/home/ubuntu/api/node_modules/mysql2/lib/packets/packet.js:728:17)
      at ClientHandshake.execute (/home/ubuntu/api/node_modules/mysql2/lib/commands/command.js:29:26)
      at Connection.handlePacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:478:34)
      at PacketParser.onPacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:97:12)
      at PacketParser.executeStart (/home/ubuntu/api/node_modules/mysql2/lib/packet_parser.js:75:16)
      at Socket.<anonymous> (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:104:25)
      at Socket.emit (node:events:513:28)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Readable.push (node:internal/streams/readable:234:10) {
    code: 'ER_ACCESS_DENIED_ERROR',
    errno: 1045,
    sqlState: '28000',
    sqlMessage: "Access denied for user 'someuser'@'localhost' (using password: NO)",
    sql: undefined
  }
}
node:internal/process/esm_loader:97
    internalBinding('errors').triggerUncaughtException(
                              ^

AccessDeniedError [SequelizeAccessDeniedError]: Access denied for user 'someuser'@'localhost' (using password: NO)
    at ConnectionManager.connect (/home/ubuntu/api/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:94:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ConnectionManager._connect (/home/ubuntu/api/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:222:24)
    at async /home/ubuntu/api/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32 {
  parent: Error: Access denied for user 'someuser'@'localhost' (using password: NO)
      at Packet.asError (/home/ubuntu/api/node_modules/mysql2/lib/packets/packet.js:728:17)
      at ClientHandshake.execute (/home/ubuntu/api/node_modules/mysql2/lib/commands/command.js:29:26)
      at Connection.handlePacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:478:34)
      at PacketParser.onPacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:97:12)
      at PacketParser.executeStart (/home/ubuntu/api/node_modules/mysql2/lib/packet_parser.js:75:16)
      at Socket.<anonymous> (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:104:25)
      at Socket.emit (node:events:513:28)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Readable.push (node:internal/streams/readable:234:10) {
    code: 'ER_ACCESS_DENIED_ERROR',
    errno: 1045,
    sqlState: '28000',
    sqlMessage: "Access denied for user 'someuser'@'localhost' (using password: NO)",
    sql: undefined
  },
  original: Error: Access denied for user 'someuser'@'localhost' (using password: NO)
      at Packet.asError (/home/ubuntu/api/node_modules/mysql2/lib/packets/packet.js:728:17)
      at ClientHandshake.execute (/home/ubuntu/api/node_modules/mysql2/lib/commands/command.js:29:26)
      at Connection.handlePacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:478:34)
      at PacketParser.onPacket (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:97:12)
      at PacketParser.executeStart (/home/ubuntu/api/node_modules/mysql2/lib/packet_parser.js:75:16)
      at Socket.<anonymous> (/home/ubuntu/api/node_modules/mysql2/lib/connection.js:104:25)
      at Socket.emit (node:events:513:28)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Readable.push (node:internal/streams/readable:234:10) {
    code: 'ER_ACCESS_DENIED_ERROR',
    errno: 1045,
    sqlState: '28000',
    sqlMessage: "Access denied for user 'someuser'@'localhost' (using password: NO)",
    sql: undefined
  }
}

我在数据库的同一台机器上运行应用程序。

通过 MYSQL Workbrench,我连接没有任何问题。

Nodejs 包: ,sequelize 6.33.0mysql2 3.6.2

Mysql版本:mysql Ver 8.0.35-0ubuntu0.23.04.1 for Linux on x86_64 ((Ubuntu))

MySQL 节点.js .js

评论

2赞 Rob Eyre 11/7/2023
.env 中的拼写错误? - 你是说吗?DP_PASSDB_PASS
0赞 lolz 11/7/2023
@RobEyre天哪,谢谢你的注意,这就是问题所在......

答:

1赞 HerzogVolpe 11/7/2023 #1

罗伯·艾尔(Rob Eyre)提到的变化 DP_PASS=Somepassword@ 自 DB_PASS=Somepassword@