遇到一个mysql连接问题,太奇怪了。
系统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毫无问题,确定是库的原因,我也不知道啥情况~
忽然发现,最新的 mysql 2.1.1 的changelog 那里有个 fix 了一个auth 问题…不知道是不是你这种情况呢?
升级 mysql 包的确解决了问题。
@mytharcher node mysql?
目前我用到的是mysql 2.15.0版本,也是有这个问题,希望有人能帮忙解决.