mysql 8小时空闲后连接失效的解决

查了一下发现应用程序和mysql数据库建立连接,如果超过8小时应用程序不去访问数据库,数据库就断掉连接 。这时再次访问就会抛出异常。

关于mysql自动断开的问题研究结果如下,

1、在自己的程序中插入定时访问数据库的方法,比如使用Timer,Quartz或者spring中简易Quartz。

2、在mysql中有相关参数设定,当数据库连接空闲一定时间后,服务器就会断开等待超时的连接:
相关参数
mysql> show variables like ‘%timeout%‘;
+--------------------------------+--------+
| Variable_name                    | Value  |
+--------------------------------+--------+
| connect_timeout                  | 5        |
| delayed_insert_timeout        | 300     |
| innodb_lock_wait_timeout    | 50       |
| interactive_timeout              | 28800 |
| net_read_timeout                | 30       |
| net_write_timeout               | 60       |
| slave_net_timeout               | 3600   |
| wait_timeout                       | 28800 |
+--------------------------------+-------+

同一时间,interactive_timeout,wait_timeout 这两个参数只有一个起作用。

到底是哪个参数起作用,和用户连接时指定的连接参数相关,缺省情况下是使用wait_timeout。

我在配置文件中将wait_timeout修改后在mysql中查寻到还是不起作用,于是将这两个参数都修改了,再次查询wait_timeout的值后才显示修改后的。

2、修改参数
这两个参数的默认值是8小时(60*60*8=28800)。测试过将这两个参数改为0,系统自动将这个值设置为1。也就是说,不能将该值设置为永久。
将这2个参数设置为24小时(60*60*24=86400)。
set interactive_timeout=86400;
set wait_timeout=86400;

也可以修改my.cof,修改后重起mysql
打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000

如果一段时间内没有数据库访问则mysql自身将切断连接,之后访问java访问连接池时对数据库的数据通道早就关闭了

时间: 2024-08-11 05:42:41

mysql 8小时空闲后连接失效的解决的相关文章

JQuery利用css()修改样式后 hover失效的解决办法

执行完代码后发现写在样式表中的hover效果失效,改了好几遍差点重新写函数,后来发现很简单,是优先级的问题,css()中的内容覆盖了之前的样式 只需要在样式后写!important即可解决! 1 .filters-wrap li:hover { 2 background:#0085d7 !important; 3 } 4 .filters-wrap li:hover span { 5 color:white !important; 6 }

mysql设置远程登录后连接不上

参考:http://www.jb51.net/article/33813.htm http://www.jb51.net/article/58096.htm 默认情况下,MySQL只允许本地登录,如果要开启远程连接,则需要修改/etc/my.cnf文件 sudo vim /etc/mysql/my.cnf注释这一行:bind-address=127.0.0.1 保存退出.mysql -u root -p 为需要远程登录的用户赋予权限: 代码如下: mysql>use mysql; mysql>

WINDOWS下更改MYSQL数据路径(datadir)后服务启动1067解决不能改变mysql数据库存储位置

晚上安装完MYSQL(系统:深度WINXPSP2, MYSQL版本:5.1.32)后,用MYSQL自带的配置工具配置完发现默认的数据存放路径是:C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/.感觉很不爽,就修改一直想在配置工具中修改这个路径,结果发现"NO WAY".只好手工修改my.ini了.结果痛苦的历程开始了: 1.修改路径为:E:\dev\MySQL5.1\Dat

Xcode7.3更新后插件失效的解决方法

昨天发布的Xcode7.3,用了一天的时间终于装上了(网络不给力),突然发现原来所使用的插件不能用了,当时表情如下: 记得在更新7.2的时候也是这样的,当时重新下载的插件安装成功,但是未免有些麻烦,经过一番研究,发现是原来的插件UUID证书变了,苹果要求必须要加入UUID才能使用,保证插件的稳定性.(UUID:Universally Unique Identifier,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡

使用transform后z-index失效的解决方法

transform作用的元素增加translateZ,父级元素增加 transform-style: preserve-3d; <div class="father"> <div class="child"></div> </div> style { .father { transform-style: preserve-3d; } .child { transform: translateZ(1px); } } 原文

使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案

本文提供了对c3p0与DBCP连接池连接MySql数据库时, 8小时内无请求自动断开连接的解决方案.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方案. 项目环境: Java Web项目框架为Spring MVC+JPA,使用c3p0连接池,发布环境为Tomcat 7 错误描述: 项目运行一段时间(大概几个小时)之后访问时会出现第一次访问报错,再次访问正常的现象,且多次出现此问题. 报错日志: [plain] view plaincopy org.spr

【转】Expire Google Drive Files 让Google Docs云盘共享连接在指定时间后自动失效

最近在清理Google Docs中之前共享过的文件链接,发现Google Docs多人协作共享过的链接会一直存在,在实际操作中较不灵活.正好订阅的RSS推送了Pseric写的这篇文章 - Expire Google Drive Files 让Google 云端硬碟共用连结在指定时间后自动失效,文中介绍的Expire Google Drive Files可以让Google  Docs云盘共享连接在指定时间后自动失效解决了指定时间内权限失效的问题. —————————————————————————

使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方式

本文提供了对c3p0与DBCP连接池连接MySql数据库时. 8小时内无请求自己主动断开连接的解决方式.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方式. 基本问题解决 项目环境: Java Web项目框架为Spring MVC+JPA,使用c3p0连接池,公布环境为Tomcat 7 错误描写叙述: 项目执行一段时间(大概几个小时)之后訪问时会出现第一次訪问报错,再次訪问正常的现象.且多次出现此问题. 报错日志: org.springframework

mysql 5.1超过默认8小时空闲时间解决办法(错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure)

报错: MySQL第二天早上第一次连接超时报错, com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 原因: 上述问题是由mysql5数据库的配置引起的.mysql5将其连接的等待时间(wait_timeout .interactive_timeout)缺省为8小时.在其客户程序中可以这样来查看其值: mysql> show global variables like 'wait