1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 解决MySQL自动断开连接的问题

解决MySQL自动断开连接的问题

时间:2019-10-28 12:39:13

相关推荐

解决MySQL自动断开连接的问题

有三个方法可以解决这个问题:

1:修改MySQL配置参数

2:修改JDBC

3:修改第三方的数据库连接池应用 Proxool.xml

方法1的解决方案:

这个参数的名称是wait_timeout,其默认值为28800秒(8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL会主动断开这个连接。在其客户程序中可以输入命令语句查看其值:

show variables like '%timeout%'; 或者

命令:show global variables like 'wait_timeout' 查看等待时间

修改操作:

Linux下打开/etc/f,在属性组mysqld下面添加参数如下:

[mysqld]

interactive_timeout=28800000 (28800000=8000个小时)

wait_timeout=28800000

windows下打开my.ini,增加:

interactive_timeout=28800000

wait_timeout=28800000

在msql5中wait_timeout的最大值分别是24d/365(win/linux);没有办法把这个值设置成无限大,

因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。

方法二的解决方案:

修改如下JDBC连接的URL:

jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true

添加autoReconnect=true这个参数,即能解决这个问题。

方法三的解决方案:

配置文件(proxool.xml):

<?xml version="1.0"encoding="UTF-8"?>

<something-else-entirely>

<proxool>

<!-- proxool别名-->

<alias>mysql</alias>

<!--数据库连接URL -->

<driver-url>

jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8</driver-url>

<!-- JDBC驱动名称-->

<driver-class>com.mysql.jdbc.Driver</driver-class>

<!--数据库连接帐号-->

<driver-properties>

<property name="user"value="root" />

<property name="password"value="password" />

</driver-properties>

<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->

<house-keeping-sleep-time>90000</house-keeping-sleep-time>

<!--指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->

<maximum-new-connections>20</maximum-new-connections>

<!--最少保持的空闲连接数-->

<prototype-count>3</prototype-count>

<!--允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->

<maximum-connection-count>20</maximum-connection-count>

<!--最小连接数-->

<minimum-connection-count>3</minimum-connection-count>

<!--在分配连接前后是否进行有效性测试,这个是解决本问题的关键-->

<test-before-use>true</test-before-use>

<test-after-use>true</test-after-use>

<!--用于测试的SQL语句一定要写(不知道问什么)-->

<house-keeping-test-sql>SELECTCURRENT_USER</house-keeping-test-sql>

</proxool>

</something-else-entirely>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。