nutz mysql8小时_MySQL8小时问题

一、问题

获取MySQL连接,8小时内无请求自动断开连接。

二、解决

2.1 分析

MySQL服务器默认的"wait_timeout"是28800秒即8小时,意味着如果一个连接的空闲时间超过8小时,MySQL将自动断开连接,而连接池却认为该连接还是有效的,当应用申请使用该连接时,就会导致报错

2.2 修改MySQL配置

通过配置文件修改:my.cnf

wait_timeout=31536000

interactive_timeout=31536000

通过命令修改

20180403_001.png

2.3 c3p0

方案一:减少连接池内连接的生存周期

方案二:定期使用连接池内的连接

Spring配置文件

2.4 dbcp

说明:

testOnBorrow的意思是从数据库连接池中取得连接时,对其的有效性进行检查。

validationQuery 是用来检查的SQL语句,“select 1”执行较快,是一个不错的检测语句。

三、扩展

3.1 c3p0配置文件

3

30

1000

false

Test

false

100

null

false

60

3

60

15

100

3

root

password

select id from test where id=1

300

false

true

root

在Hibernate(spring管理)中的配置:

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@localhost:1521:Test

Kay

root

###########################

### C3P0 Connection Pool###

###########################

#hibernate.c3p0.max_size 2

#hibernate.c3p0.min_size 2

#hibernate.c3p0.timeout 5000

#hibernate.c3p0.max_statements 100

#hibernate.c3p0.idle_test_period 3000

#hibernate.c3p0.acquire_increment 2

#hibernate.c3p0.validate false

在hibernate.cfg.xml文件里面加入如下的配置:

20

5

120

100

120

2

true

四、参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值