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

时间:2014-04-02 21:21:04

标签: 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 OS。 我尝试在第二台计算机上禁用我的防火墙,但我遇到了同样的问题。 注意:我可以使用phpmyadmin和我的网络浏览器访问数据库。

1 个答案:

答案 0 :(得分:1)

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

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

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