我想连接另一台服务器数据库。例如代码在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 作为数据库名称,数据库也正在正确连接。但当我使用其他数据库时,我仍然面临错误
错误:ER_BAD_DB_ERROR:未知数据库'cp'
我已经在特定服务器中进行了远程访问设置并检查了php代码,它的工作正常。
请帮忙完成这项艰巨的任务。
答案 0 :(得分:1)
我认为您的授权声明指定不正确(如果它与您在上面的评论中显示的完全一样)。
应该是:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
但是,这些都是非常普遍的特权。我建议将其限制在特定的数据库中:
GRANT INSERT, UPDATE, SELECT, DELETE ON <database>.* TO 'USERNAME'@'%';
设置数据库后,普通用户不需要创建或修改表或授予其他用户访问权限。
另外,正如您所看到的,我没有在grant命令中指定密码。这应该在CREATE USER命令中指定,因为在某些情况下,GRANT可能会记录在服务器日志中或客户端历史文件中,这意味着任何对该信息具有读取权限的人都可以读取明文密码。