大概初用C-API进行MySQL应用开发的人,都会遇到这种问题,就是当应用停顿了一段时间以后,连接会自动中断掉。
仔细试验,会发现这主要与参数interactive_timeout有关,它缺省值28800, 合计,好像是8个小时
其实,我们在应用里边,可以在获取连接以后,加大这个值,使应用不会自动中断的连接。
mysql> show variables like '%time%';
+--------------------------+-------------------+
| Variable_name | Value |
+--------------------------+-------------------+
| connect_timeout | 5 |
| datetime_format | %Y-%m-%d %H:%i:%s |
| delayed_insert_timeout | 300 |
| flush_time | 1800 |
| innodb_lock_wait_timeout | 50 |
| interactive_timeout | 28800 |
| long_query_time | 10 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| slow_launch_time | 2 |
| sync_replication_timeout | 10 |
| system_time_zone | |
| time_format | %H:%i:%s |
| time_zone | SYSTEM |
| timed_mutexes | OFF |
| wait_timeout | 28800 |
+--------------------------+-------------------+
mysql> set interactive_timeout=1073741824;
Query OK, 0 rows affected (0.06 sec)
mysql> show variables like 'intera%timeout';
+---------------------+----------+
| Variable_name | Value |
+---------------------+----------+
| interactive_timeout | 31536000 |
+---------------------+----------+
1 row in set (0.02 sec)
mysql> show variables like '%timeout%';
+--------------------------+----------+
| Variable_name | Value |
+--------------------------+----------+
| connect_timeout | 5 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| interactive_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| sync_replication_timeout | 10 |
| wait_timeout | 28800 |
+--------------------------+----------+
9 rows in set (0.00 sec)
如果不放心,可以将wait_timeout也改大。
至于在C应用里怎么执行,直接执行SQL语句:
set interactive_timeout=1073741824
即可。
其实,要想永不中断,比较理想的方法,是自己实现一个连接池,每隔一个周期(比如10分钟),主动查询一次数据库,这样,这个连接永远是活动的。
分享到:
相关推荐
包含翻译后的API文档:mysql-binlog-connector-java-0.21.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.github.shyiko:mysql-binlog-connector-java:0.21.0; 标签:github、shyiko、mysql、binlog、...
mysql-connector-java-5.1.46+mysql-connector-java-8.0.13--Mysql连接包 放入lib,即可使用
mysql-c-api 参考手册
包含翻译后的API文档:mysql-binlog-connector-java-0.21.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:com.github.shyiko:mysql-binlog-connector-java:0.21.0; 标签:github、shyiko、mysql、...
数据库连接的jar包,连接mysql,其中包含json.jar 、servlert-api、 mysql-connector-java-5.0.4-bin
这是一个简单的MySql C API 的 C++ 包装,适合初学者。
数据库驱动包和servlet请求包,亲试能够解决问题,mysql-connector-java-5.0.4-bin.jar和httpservlet-api.jar
jstl-api-1.2.jar,jstl-impl-1.2.jar,mysql-connector-5.1.8.jar,java连接mysql jar包
jstl-api-1.2.jar jstl-impl-1.2.jar mysql-connector-java-5.1.10-bin.jar
MySQL-PHP数据库应用开发指南 pdf格式 。。。。。。。。。。
mysql-connector-java-5.1.40-bin.jar连接器,用于在hive和mysql的数据库连接
mysql5将其连接的等待时间(wait_timeout)缺省为8小时。怎么不让它超时呢
课程教学大纲-MySQL数据库应用与开发-姜桂洪-清华大学出版社.docx课程教学大纲-MySQL数据库应用与开发-姜桂洪-清华大学出版社.docx课程教学大纲-MySQL数据库应用与开发-姜桂洪-清华大学出版社.docx课程教学大纲-...
jstl-api-1.2.jar、jstl-impl-1.2.jar、mysql-connector-java-5.1.10-bin.jar Web开发所需3个文件。
mysql-connector-java-5.1.27.jar mysql-connector-java-5.1.27.jar
MySQL-PHP数据库应用开发指南,非常好的一本书,要下完所有的文件才能解压。
在程序中使用以下语句连接MySQL数据库服务器: @$db=new MySQLi('localhost','userName','password','databaseName'); 以上代码实例化了MySQLi类并且创建了到主机localhost的连接,该连接使用的用户名和密码分别为:...
常用的odbc连接mysql数据库的驱动mysql-connector-odbc-8.0.33-win32 32位版本,支持VB ,VC等开发平台
这是C语言开发mysql用的中文手册,里面基本涵盖了mysql的CApi解释说明,还有用例。对刚接触mysql的c开发者很有用
针对Qt连接MySQL提示“QSqlDatabase: QMYSQL driver not loaded”问题的解决方案 解决步骤详见对应博客 https://blog.csdn.net/wangpan0330/article/details/104942097