从某些应用程序,我无法连接到远程数据库服务器:
MYSQL conn;
if(!mysql_init(&conn))
std::wcout << "Error: can't create MySQL-descriptor" << endl;
if(!mysql_real_connect(&conn,"ip","user","password","dbname",0,0,0))
std::wcout << "Error: can't connect to MySQL server" << endl;
if(mysql_query(&conn, "SELECT VERSION()") != 0)
std::wcout << "Error: can't execute SQL-query" << endl;
我在远程服务器上打开了端口3306
:
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables save
iptables restart
错误:
无法连接到数据库:错误:无法连接到MySQL服务器 'ip_ ..'(10060)
可能是什么原因?
我将非常感谢这些信息。谢谢大家。
答案 0 :(得分:1)
每次失败的测试后(成功mysql_init
之后)都应显示mysql_error的结果,例如:
if(!mysql_real_connect(&conn,"ip","user","password","dbname",0,0,0))
std::wcout << "Error: can't connect to MySQL server:"
<< mysql_error (&conn) << endl;
否则您的用户将无法理解他发生的事情。
你可能会发现发生了什么。如果没有,请查看文档。