QT- MYSQL怎么长时间保持连接

QT- MYSQL如何长时间保持连接
软件长时间运行  运行一段时间后,数据库操作开始出现异常  无法入库,刚启动软件的一段时间之内,数据库入库都正常,但是运行的时间长了, 就会不正常,我目前用的方法是,过一段时间重启一次,但是这样还是不怎么好,因为数据库出问题的时间并不确定,  请问大家,大家是怎么处理的呢

  QSqlDatabase db;
    if(QSqlDatabase::contains("crm")){
         db = QSqlDatabase::database("crm");         
         qDebug()<<"1---------已经连接过了";
    }else{
        db = QSqlDatabase::addDatabase("QMYSQL", "crm");
        db.setHostName("localhost");
        db.setDatabaseName("crm");
        db.setUserName("root");
        db.setPassword("");
        db.exec("SET NAMES 'GBK'");//utf-8
        db.open(); // 尝试连接数据库
        qDebug()<<"1---------连接";
    }




上面是我数据库的连接代码,每次使用数据库操作之前 我都会这样操作一次,代码的思路是,判断是否连接上了数据库,如果连接上了  就设置当前数据库为 crm这个库, 否则 就重新连接

请问大家有什么办法么   谢谢
mysql 数据库

------解决方案--------------------
修改my.cnf,添加wait_timeout=1814400, 然后重启mysql。
------解决方案--------------------
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!

------解决方案--------------------
引用:
修改my.cnf,添加wait_timeout=1814400, 然后重启mysql。

还要同时修改interval_timeout才行,单改一个wait_timeout不管用。在windows系统下是这样的。其他的没用过。