无法从C++连接到 MySQL

Can't connect to MySQL from C++

本文关键字:MySQL 连接 C++      更新时间:2023-10-16

从某些应用程序,我无法连接到远程数据库服务器:

  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)

原因可能是什么?

您应该在每次测试失败后(在成功的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; 

否则,您的用户将无法理解发生在他身上的事情。

你可能会发现发生了什么。如果没有,请查看文档。