数据库连接失败Communications link failure mysql
2011-09-19 16:38
597 查看
mysql使用连接池的时候有时会遇到这个情况,就是
Communications link failure mysql
这个错误提示你数据库连接断开,因为数据的链接空闲时间默认的是8小时,如果超过八小时没有连接的话,将会自动的断开连接。所以才会抛上面的遗常。网友、说明:如下
使用Connector/J连接MySQL数据库,程序运行较长时间后就会报以下错误:
Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。
其中错误还会提示你修改wait_timeout或是使用Connector/J的autoReconnect属性避免该错误。
后来查了一些资料,才发现遇到这个问题的人还真不少,大部分都是使用连接池方式时才会出现这个问题,短连接应该很难出现这个问题。这个问题的原因:
MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。
1.按照错误的提示,可以在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true&failOverReadOnly=false,不过并未起作用,使用的是5.1版本,可能真像网上所说的只对4之前的版本有效。
2.没办法,只能修改MySQL的参数了,wait_timeout最大为31536000即1年,在my.cnf中加入:
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
重启生效,需要同时修改这两个参数。
修改该参数也可以通过命令行来修改,但是命令行只对当前的运行的系统起作用,如果你接触不到配置文件,那就通过命令行吧, 具体的方法如下
设置全局的参数变量:set wait_timeout=315360000;
show variables 查看变量
show variables like 'wait_timeout'; 查看'wait_timeout'变量的信息,如果产看的value值是28800,则说明设置失败。
如果不是,则设置成功。
Communications link failure mysql
这个错误提示你数据库连接断开,因为数据的链接空闲时间默认的是8小时,如果超过八小时没有连接的话,将会自动的断开连接。所以才会抛上面的遗常。网友、说明:如下使用Connector/J连接MySQL数据库,程序运行较长时间后就会报以下错误:
Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。
其中错误还会提示你修改wait_timeout或是使用Connector/J的autoReconnect属性避免该错误。
后来查了一些资料,才发现遇到这个问题的人还真不少,大部分都是使用连接池方式时才会出现这个问题,短连接应该很难出现这个问题。这个问题的原因:
MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。
1.按照错误的提示,可以在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true&failOverReadOnly=false,不过并未起作用,使用的是5.1版本,可能真像网上所说的只对4之前的版本有效。
2.没办法,只能修改MySQL的参数了,wait_timeout最大为31536000即1年,在my.cnf中加入:
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
重启生效,需要同时修改这两个参数。
修改该参数也可以通过命令行来修改,但是命令行只对当前的运行的系统起作用,如果你接触不到配置文件,那就通过命令行吧, 具体的方法如下
设置全局的参数变量:set wait_timeout=315360000;
show variables 查看变量
show variables like 'wait_timeout'; 查看'wait_timeout'变量的信息,如果产看的value值是28800,则说明设置失败。
如果不是,则设置成功。
相关文章推荐
- 数据库连接失败Communications link failure due to underlying exception!
- 数据库连接失败Cannot create PoolableConnectionFactory (Communications link failure
- 数据库连接错误:Communications link failure due to underlying exception
- mysql连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
- 解决MySQL连接超时Communications link failure due to underlying exception
- MySQL连接超时Communications link failure
- 连接数据库报错 Communications link failure
- 解决mysql连接异常—-com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- MyBatis数据库连接出现Communications link failure现象的解决办法(dbcp2连接池)
- 解决MySQL连接超时Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- 解决mysql连接异常—-com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception
- 解决MySQL连接超时Communications link failure due to underlying exception
- 远程连接mysql的“Communications link failure”错误解决方案
- 解决MySQL连接超时Communications link failure due to underlying exception