大白鲨
shark888
全部博文(585)
虚拟机应用(10)
window(2)
自定义组件(5)
基本组件(0)
JSP/Server(0)
数据库应用(2)
2013年(5)
2012年(214)
2011年(56)
2010年(66)
2009年(44)
2008年(200)
bjpiao
dongshen
csu8263
vfhsdfh
chen0304
cynthia
格伯纳
浪花小雨
Bsolar
lixd56
zhould
郭罗蒂
分类:
2008-05-20 14:23:02
从 5.x的某个版本之后,MySQL的自动关闭空闲连接的特性被修改了,假如一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常:SER只会在需要操作时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决。 下文中将具体讲述处理的: 1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性比如触发器之类。 2.定时重启Mysql服务器或Ser(由于本问题可能同样会影响到其它一些需要Mysql支持的服务器程序,所以重启Mysql服务器为好,但需要检测Mysql服务器不被使用的一个时间重启比较难确定) 3.设置my.cnf,有mysqld字段内增加参数: [mysqld]port = 3306socket = /tmp/mysql.sockwait_timeout= 500000interactive_timeout = 500000(500000秒约五六天的超时时间,可根据实际需要选择一个数据库可能空闲的最长时间稍大的时间值。)重启Mysqld应用即可,也可以在 执行mysqld时加-o wait_timeout=500000参数同样效果。 在MySQL客户端show variable时应该可以看到最后一条从默认的wait_time=28000变成500000了。 (假如重启Mysqld不生效,可以重启机子)
下文中将具体讲述处理的:
1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性比如触发器之类。
2.定时重启Mysql服务器或Ser(由于本问题可能同样会影响到其它一些需要Mysql支持的服务器程序,所以重启Mysql服务器为好,但需要检测Mysql服务器不被使用的一个时间重启比较难确定)
3.设置my.cnf,有mysqld字段内增加参数:
[mysqld]port = 3306socket = /tmp/mysql.sockwait_timeout= 500000interactive_timeout = 500000(500000秒约五六天的超时时间,可根据实际需要选择一个数据库可能空闲的最长时间稍大的时间值。)重启Mysqld应用即可,也可以在 执行mysqld时加-o wait_timeout=500000参数同样效果。
在MySQL客户端show variable时应该可以看到最后一条从默认的wait_time=28000变成500000了。
(假如重启Mysqld不生效,可以重启机子)
上一篇:巧用MySQL InnoDB引擎锁机制解决死锁问题
下一篇:日志方式转换及物理日志和逻辑日志的管理
登录 注册