【发布时间】:2014-04-07 15:20:20
【问题描述】:
我正在尝试使用 node-mysql 连接到本地 MySQL 服务器,但收效甚微。
每次我尝试连接时,都会收到 ER_ACCESS_DENIED_ERROR。我已经验证我可以使用命令行和下面的凭据连接到 MySQL 服务器,该服务器正在运行,并且端口是正确的。
我的代码如下:
var mysql = require('mysql');
var dbConnection = mysql.createConnection( {
user: 'node_user',
password: 'password',
database: 'sample_db',
host: 'localhost',
port: 3306
} );
dbConnection.connect(function(err) {
if(err) {
console.log('Can\'t connect');
console.dir(err);
} else {
console.log('Connection success.');
dbConnection.end();
}
});
我确信我做的事情很明显是错误的,但我早上的大部分时间都在盯着它看,我看不出有什么问题。
我得到的唯一线索是,如果我将用户密码设置为空白(在数据库和代码中),那么它会非常愉快地连接。
非常感谢任何建议。
【问题讨论】:
-
我会在数据库中检查授予该用户和 IP 地址的权限。
-
我已授予用户对 *.* 的所有权限,并从 % 授予登录权限,这应该使其能够从所有 IP 地址访问。除非我将密码设为空,否则它仍然无法连接,在这种情况下它可以正常连接。
-
您是否创建了用户和密码并授予他们访问权限?我通常会。我不使用root密码。
标签: mysql node.js node-mysql