在nodejs中远程连接mysql数据库

我想连接另一个服务器数据库。 例如代码是在ABC服务器,我想另一个服务器是XYZ服务器的数据库。 我已经做了。 但得到错误

错误:ER_BAD_DB_ERROR:未知数据库'cp'

在那里我有一个数据库作为CP

交互的服务器代码是

var db_config={ "domain" : "http://****/", "hostname" : "****", "port" : 3306, "user" : "*****", "password" : "****", "database" : "cp" } var connection=mysql.createConnection(db_config); connection.connect(function(err,s){ if (err){ console.log("Error"+err); } else{ console.log("db connected"); } }); 

当我删除数据库和凭据是正确的,我可以连接服务器。 如果我使用information_schema作为数据库的名称也db连接正确。 但是当我使用其他数据库我仍然面临着错误

错误:ER_BAD_DB_ERROR:未知数据库'cp'

我已经做了远程访问设置在特定的服务器和检查在PHP代码,其在那里工作很好。

请帮助忙碌的工作。

我相信你的授权声明是错误地指定的(如果它和你在上面的注释中显示的一样)。

它应该是:

 GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 

但是,这些是非常普遍的特权。 我build议将其限制在特定的数据库中:

 GRANT INSERT, UPDATE, SELECT, DELETE ON <database>.* TO 'USERNAME'@'%'; 

设置数据库后,普通用户不需要创build或修改表或授予其他用户访问权限。

另外,正如你所看到的,我没有在grant命令中指定密码。 这应在CREATE USER命令中指定,因为在某些情况下,GRANT可能会logging在服务器日志或客户端历史logging文件中,这意味着明文密码可能被读取该信息的任何人阅读。