首页 > 服务器 > Web服务器 > 正文

mysql自动关闭服务、连接限制等问题的解决方法

2024-09-01 13:43:49
字体:
来源:转载
供稿:网友

通过mysql服务器端程序mysql Administrator调整连接参数。

将max_connections max_updates max_questions三项数据调整到很大的数字,那么你有限的操作将不会导致数据库服务的终止了
在MySQL数据库中,如果一个连接8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。
有三个方法可以解决这个问题:
1:修改MySQL配置参数
2:修改JDBC
3:修改第三方的数据库连接池应用 Proxool.xml

方法一:这个参数的名称是 wait_timeout,其默认值为 28800秒(8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL 会主动断开这个连接。
修改操作:
linux下打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000

windows下打开my.ini,增加:
interactive_timeout=28800000
wait_timeout=28800000
有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。

方法二:修改如下JDBC连接的 URL:
jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true
添加 autoReconnect=true 这个参数,即能解决这个问题。

方法三:配置文件(proxool.xml):

 


mysql


jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8


com.mysql.jdbc.Driver

 


90000


20

 

3


20


3


true
true


SELECT CURRENT_USER

三、开始菜单-运行-services.msc

找到mysql的服务并双击

点击恢复选项卡

第一次失败:默认是“不操作”,改成”重新启动服务”。

在下方的“重新启动服务:___分钟后”添上“0”表示如果服务意外终止则立即重启动。

点击确定使设置生效。

这时候你在任务管理器里结束mysql-nt进程,会发现结束不掉。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表