MySQL 异常"connection lost during query"、"MySQL server has gone away"和"command out of sync"
MySQL exception "connection lost during query", "MySQL server has gone away" and "command out of sync"
我有一个带有c 的代码,该代码使用sqlapi 库。在我的代码中,我尝试为mySQL打开连接,然后创建两个命令,它们可以使用相同的连接,然后从两个线程调用该命令。在执行我的代码期间,我收到了例外的"查询期间连接丢失"answers" MySQL Server消失了"。有时候,我会收到异常"命令of nof Sync,您现在无法运行此命令"。我试图增加wait_timeoutտ> 150和max_lowered_packageտ64m,但我的问题无法解决。波纹管您可以找到C 代码。
int main()
{
try
{
SAConnection saConnection;
saConnection.Connect("scada", "root", "123qwerty!@#", SA_MySQL_Client);
saConnection.setAutoCommit(SA_AutoCommitOff);
SACommand saCommand1{&saConnection, "select * from Node"};
SACommand saCommand2{&saConnection, "select * from Node limit 1"};
// VM: TODO: saCommand1.setOption("UseStatement") = "TRUE";
// VM: TODO: saCommand2.setOption("UseStatement") = "TRUE";
saCommand1.setOption("HandleResult") = "store";
saCommand2.setOption("HandleResult") = "store";
auto f1 = std::async(std::launch::async, [&]{ saCommand1.Execute(); saConnection.Commit(); });
auto f2 = std::async(std::launch::async, [&]{ saCommand2.Execute(); saConnection.Commit(); });
f1.get();
f2.get();
//saConnection.Commit(); // BOOM!
/*
while (saCommand1.FetchNext())
std::cerr << "======== fetching a record from saCommand1" << std::endl;
while (saCommand2.FetchNext())
std::cerr << "======== fetching a record from saCommand2" << std::endl;
*/
}
catch(const SAException& ex)
{
std::cerr << "==== ex.what() is " << static_cast<const char*>(ex.ErrText()) << std::endl;
}
return 0;
}
您使用的是来自两个std::async
对象的一个连接,可能是来自两个线程,不支持的两个线程。创建与数据库的两个连接,每个std::async
。
相关文章:
- netcat command in c++
- C++MySQL C api用户输入行
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用mysql c++连接器的未定义引用
- 无法在C++中建立与MySQL数据库的连接
- mysql C++ connector [mysql-connector-c++-8.0.19-linux-glibc2
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- MySQL C++连接器链接错误
- 配置:错误:找不到 MySQL 包含目录
- 在装有 CLion 的 Mac 上使用 C++ 连接到 MySQL 数据库时出现问题
- C++MySQL连接器没有utf8
- Qt5 从 MySQL 数据库中选择数据
- Poloniex API "Invalid command" c++ libcurl
- Arch Linux.AUR 包 mysql 不能用 makepkg 构建.错误:构建 () 中出现故障
- 在 MySQL/Connector C++中使用 SQL 联接
- 如何在MySQL Connector/C++ 8.0中使用DATETIME?
- Postgres vs MySQL:命令不同步;.
- MySQL 异常"connection lost during query"、"MySQL server has gone away"和"command out of sync"