提问者:小点点

ER_ACCESS_DENIED_ERROR:在nodeJS上拒绝访问


尝试连接时,MySQL正在连接到不同的未知IP。下面的代码:

. env

MYSQL_HOST=domain.example.com
MYSQL_USER=****
MYSQL_PASSWORD=****
MYSQL_DB=****
MYSQL_PORT=3306

连接. js

const mysql = require("mysql");

exports.pool = mysql.createPool({
  connectionLimit: 10,
  host: process.env.MYSQL_HOST,
  port: process.env.MYSQL_PORT,
  user: process.env.MYSQL_USER,
  password: process.env.MYSQL_PASSWORD,
  database: process.env.MYSQL_DB,
});

控制器

pool.getConnection((err, connection) => {
        if (err) {
          console.log("ERROR: ", err);
        } else { ... insert data .... }
});

有了这个,我得到了错误:

try connecting to remote mysql...
Error:  Error: ER_ACCESS_DENIED_ERROR: Access denied for user '****'@'112.200.198.66' (using password: YES)

在MySQL工作台测试并成功连接。我只是好奇当该域的公共IP不同时,IP来自哪里。也尝试使用IP来连接,但仍然给我同样的错误。


共1个答案

匿名用户

如果您使用的是MySQL 8,问题可能是Node mysql驱动程序使用了不同的身份验证插件-请参阅Node. js无法对MySQL 8.0进行身份验证