zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

QT MySQL连接自动断开

2023-02-18 16:30:03 时间

参考链接

MySQL链接10天后自动断开解决方案:<https://blog.csdn.net/xiaoxiao133/article/details/123006881

方式一

QT中可以通过自动重连的方式进行配置,如下所示:

QSqlDatabase dbConnLocal = QSqlDatabase::addDatabase("QMYSQL", connNameLocal);
dbConnLocal.setConnectOptions("MYSQL_OPT_RECONNECT=1");

代码如下所示:

QSqlDatabase *db = QSqlDatabase::addDatabase(ServerConfig::SqlDrivetype, SqlName);
/* 当数据库断开后,自动重连 */
db->setConnectOptions("MYSQL_OPT_RECONNECT=1");
/* 设置数据库连接参数 */
db->setHostName(ServerConfig::SqlServerIp);
db->setDatabaseName(ServerConfig::SqlDatabaseName);
db->setUserName(ServerConfig::SqlUserName);
db->setPassword(ServerConfig::SqlPassword);
db->setPort(ServerConfig::SqlServerPort);

方式二

修改MySQL的配置文件 /mysql/mysql.conf.d/mysqld.cnf, 在[mysqld]后面加上如下两句话

interactive_timeout=288000000
wait_timeout=288000000

注意:这样的方式比较占资源,一些不用的连接不会断开