遇到一个mysql连接问题,太奇怪了。
发布于 9 年前 作者 PhoenixFeng 19760 次浏览 最后一次编辑是 6 年前

系统centos,确认root有密码,host为%,命令行中mysql -u root -p可以正常登录,局域网机器可以。

var mysql = require('mysql');

var conn = mysql.createConnection({
  host : 'localhost',
  user : 'root',
  password : 'xxxxx'
(隐去)
});

conn.connect(function (err) {

    if (err) console.log('connection error:', err);

});

运行上述代码就报错,把localhost换成.或者ip,都是相同的错误,求解释~

{ [Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: NO)]
  code: 'ER_ACCESS_DENIED_ERROR',
  errno: 1045,
  sqlState: '28000',
  fatal: true }

9 回复

已解决,是版本问题,node-mysql2.1.0降级为2.0.1就好了,看来要指定版本安装了。

建议不要用root连数据库,可以新建用户连数据库。

奇怪了…我这里倒是很正常…

谢谢提醒,这里只做测试使用~

的确很奇怪,我用command line毫无问题,确定是库的原因,我也不知道啥情况~

@PhoenixFeng

忽然发现,最新的 mysql 2.1.1 的changelog 那里有个 fix 了一个auth 问题…不知道是不是你这种情况呢?

升级 mysql 包的确解决了问题。

目前我用到的是mysql 2.15.0版本,也是有这个问题,希望有人能帮忙解决.

回到顶部