mysql断线怎么解决 mysql 断电

Mysql8小时断线,请问如何解决关于mysql自动断开的问题研究结果如下,在mysql中有相关参数设定,当数据库连接空闲一定时间后,服务器就
会断开等待超时的连接:
同一时间,这两个参数只有一个起作用 。到底是哪个参数起作用,和用户连接时指定的连接参数相关,缺省情况下是使用
wait_timeout 。我建议是将这两个参数都修改,以免引起不必要的麻烦 。
2、修改参数
这两个参数的默认值是8小时 。我测试过将这两个参数改为0,结果出人意料,系统自动将这个值设置为1 。换句话说,不能将该值设置为永久 。我建议为参数值加三个0,这样肯定可以满足我们的应用要求 。
修改操作:打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000
windows下在my.ini文中增加:
interactive_timeout=28800000
wait_timeout=28800000
mysql为什么交互输入每次显示终端连接已断开mysql交互输入每次显示终端连接已断开是MySQL的默认设置 。当一个连接的空闲时间超过8小时后,MySQL就会断开该连接 。超过这个时间(默认是8小时)对数据库没有任何操作,那么MySQL会自动关闭数据库连接以节省资源 。
解决MySQL8小时自动断开连接的问题(DBCP配置) 最近做的一个JavaWeb项目 , 持久层用SpringJDBC+DBCP+MySQL 。一开始只配置了DBCP的一些常用参数,没有注意对空闲连接的检查和回收 。项目部署在tomcat后 , 刚开始使用没用问题 。第二天再试图登录时,发生了报错:
可以看到,报错信息提示上次交互已经是82664635ms前,超过了MySQL server配置的'wait_timeout'(默认是8小时),所以该连接已经被MySQL回收了,但DBCP不知道连接已被回收 , 依然试图执行操作,引发了异常 。报错信息提示可以修改wait_timeout或者添加autoReconnect=true 。
(备注:mysql5以上的,设置autoReconnect=true 是无效的 只有4.x版本,起作用)
这两个参数的默认值是8小时(60 60 8=28800) 。注意:wait_timeout的最大值只允许2147483 (24天左右)
也可以用MySQL命令进行修改
这种办法治标不治本 。
2.减少连接池内连接的生存周期 , 使之小于上一项中所设置的wait_timeout 的值 。
也就是说,让已经断开的空闲连接没有机会被使用,提前被回收 。
以C3P0配置为例:
DBCP中配置minEvictableIdleTimeMillis即可 。
【mysql断线怎么解决 mysql 断电】3.配置连接池
定期使用连接池内的连接,使得它们不会因为闲置超时而被 MySQL 断开 。并且每次使用连接前检查连接是否可用,定期回收空闲的连接 。
修改 c3p0 的配置文件,在 Spring 的配置文件中设置:
DBCP连接池的配置:
DBCP官方配置文档:
C3P0的配置标准:
关于MySQL的wait_timeout连接超时问题报错解决方案
关于mysql断线怎么解决和mysql 断电的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读