如何解决mysql数据库8小时无连接自动关闭

本文介绍了MySQL数据库自动关闭服务的问题及三种解决方案:修改wait_timeout参数、添加autoReconnect=true到JDBC URL以及配置proxool.xml文件。推荐使用第一种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

专家解答: MySQL是一个小型关系型 数据库管理系统,由于MySQL体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
  关于mysql自动关闭服务的现象,可以通过mysql服务器端程序mysql Administrator调整连接参数。将max_connections max_updates max_questions三项数据调整到很大的数字,那么你有限的操作将不会导致数据库服务的终止了在MySQL数据库中,如果一个连接8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。解决mysql数据库自动关闭服务三个方法:
  方法一:这个参数的名称是 wait_timeout,其默认值为 28800秒(8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL 会主动断开这个连接。
修改操作:
   linux下打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[plain] view plain copy
 
print?
  1. interactive_timeout=28800000  
  2. wait_timeout=28800000  
interactive_timeout=28800000
wait_timeout=28800000

windows下打开my.ini,增加:
[plain] view plain copy
 
print?
  1. interactive_timeout=28800000  
  2. wait_timeout=28800000  
interactive_timeout=28800000
wait_timeout=28800000

有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。
  方法二: 修改如下JDBC连接的 URL:
  jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true
  添加 autoReconnect=true 这个参数,即能解决这个问题。
  方法三:配置文件(proxool.xml):
mysql
[plain] view plain copy
 
print?
  1. jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8  
  2. com.mysql.jdbc.Driver  
  3. 90000  
  4. 20  
  5. 3  
  6. 20  
  7. 3  
  8. true  
  9. true  
  10. SELECT CURRENT_USER  
jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8
com.mysql.jdbc.Driver
90000
20
3
20
3
true
true
SELECT CURRENT_USER

专家建议关于mysql自动关闭服务的三个方法,用户最好采取第一个办法最为彻底解决。

转载于:https://www.cnblogs.com/dauber/p/8028363.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值