C++;:can';t连接到远程mysql数据库 我写了一个C++程序,应该连接到MySQL数据库。 当我使用本地数据库时,它可以成功地工作,但是我得到了一个错误 “无法连接到'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); } void addb() { 字符串mainServer=“192.168.0.111”; 字符串mainDbUser=“root”; 字符串mainDbPass=“111”; MYSQL*connect;//数据库连接变量 connect=mysql_init(NULL); 如果(!连接) cout

C++;:can';t连接到远程mysql数据库 我写了一个C++程序,应该连接到MySQL数据库。 当我使用本地数据库时,它可以成功地工作,但是我得到了一个错误 “无法连接到'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); } void addb() { 字符串mainServer=“192.168.0.111”; 字符串mainDbUser=“root”; 字符串mainDbPass=“111”; MYSQL*connect;//数据库连接变量 connect=mysql_init(NULL); 如果(!连接) cout,c++,mysql,linux,C++,Mysql,Linux,确保防火墙允许数据库机器上的MySQL端口 确保在my.cnf数据库中加载了正确的网络配置(以侦听公共IP) 从错误消息中,我怀疑这是防火墙问题,因此请确保DB machine firewall允许传入通信(特别是SELinux在防火墙之外启用)并且发送机器允许与此机器进行传出通信。我已经在DB机器上禁用了防火墙,但没有成功。您是否检查了my.cnf配置以侦听ip端口?尝试在DB机器上运行mysql--host=public_ip(其中public_ip是您用于远程连接的ip地址)

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

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


从错误消息中,我怀疑这是防火墙问题,因此请确保DB machine firewall允许传入通信(特别是SELinux在防火墙之外启用)并且发送机器允许与此机器进行传出通信。

我已经在DB机器上禁用了防火墙,但没有成功。您是否检查了my.cnf配置以侦听ip端口?尝试在DB机器上运行mysql--host=public_ip(其中public_ip是您用于远程连接的ip地址)