C++:无法连接到远程mysql数据库

标签 c++ mysql linux

我正在编写一个应该连接到 mysql 数据库的 c++ 程序。 当我使用本地数据库时它成功运行,但出现错误 “无法连接到‘192.168.0.111’ (111) 上的 mysql 数据库” 当我尝试连接到另一台计算机上的数据库时。 这是测试我的连接的功能:

void addb()
{
string mainServer="192.168.0.111";
string mainDbUser="root";
string mainDbPass="111";
MYSQL *connect; //database connection variable

connect=mysql_init(NULL);
if(!connect)
    cout<<"Couldn't initiate connector\n";

if (mysql_real_connect(connect, mainServer.c_str(), mainDbUser.c_str(), mainDbPass.c_str(), "main" ,0,NULL,0))
{
    cout<<" done\n";
}
else
{
    cout<<mysql_error(connect)<<endl;
}
mysql_close (connect);
}

两台计算机都运行 Linux Mint 操作系统。 我尝试在第二台计算机上禁用我的防火墙,但我遇到了同样的问题。 注意:我可以通过网络浏览器使用 phpmyadmin 访问数据库。

最佳答案

确保防火墙允许数据库机器上的 MySQL 端口。

确保在 my.cnf 中加载了数据库,您具有正确的网络配置(以收听公共(public) IP)。

从错误消息来看——我怀疑这是一个防火墙问题——所以确保数据库机器防火墙允许传入通信(特别是——除了防火墙之外,SELinux 还启用它)并且发送机器允许传出通信到这台机器。

关于C++:无法连接到远程mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22823334/

相关文章:

c++ - 图形表示 - 数据分布

c++ - 如何调整QSlider的句柄?

mysql - 如何将(可变!) map 实现到网站中

Linux 和内存泄漏

c - getnameinfo 的签名在 glibc 版本之间发生变化,我该如何匹配它?

c++ - 错误 : passing ‘const sdf’ as ‘this’ argument discards qualifiers [-fpermissive]

c++ - 将枚举类型转换为整数,反之亦然

php - 过滤 PDO SQL 查询

mysql - 从具有不同结果的两个不同的 mysql 表中获取信息

r - 使用桥接适配器在虚拟机上配置我的 Shiny 服务器时出现问题