gpt4 book ai didi

php - nodejs中的远程mysql数据库连接

转载 作者:搜寻专家 更新时间:2023-10-30 23:33:23 24 4
gpt4 key购买 nike

我想连接到另一个服务器数据库。例如代码在 abc 服务器中,我想要另一个服务器的数据库,它是 xyz 服务器。我已经做了。但出现错误

Error: ER_BAD_DB_ERROR: Unknown database '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 作为数据库名称,数据库也会正确连接。但是当我使用其他数据库时,我仍然面临错误

Error: ER_BAD_DB_ERROR: Unknown database 'cp'

我已经在特定服务器中设置了远程访问并检查了 php 代码,它在那里工作正常。

请帮助完成这项繁忙的任务。

最佳答案

我认为您的授权声明指定不正确(如果它与您在上面的评论中显示的完全一样)。

它应该是:

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 可能会记录在服务器日志或客户端历史文件中,这意味着任何对该信息具有读取权限的人都可以读取明文密码。

关于php - nodejs中的远程mysql数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45958265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com