MySQL Connection not available问题解决方案

在后端开发过程中,连接mysql数据库,过几个小时第一次使用会出现MySQL Connection not available报错,即MySQL 数据库连接超时问题

这是因为MySql数据库存在一个连接池的回收时间,超过这个时间会导致资源无法正常释放,无法连接到MySql数据库(以下两种解决方案)

1)在相关引用页面,进行定时刷新功能,这样尽管是同一个连接,但是相当于一个新的进程

2)修改MySql数据库中wait_timeout参数

 

 

这里主要考虑第二种方案,在解决这个问题之前,我们需要了解MySql数据库两个参数:

1)wait_timeout 参数: 访问等待一个周期时长,比如这个wait_timeout默认是8个小时,如果两次访问的时间差大于这个值,就会报连接超时的错误。
2)interactive_timeout 参数: 服务器关闭交互式连接前等待活动的秒数。

注意:wait_timeout参数,这个是mysql设置的一个connection的空闲时间,超过这个时间,mysql就会主动断了这个connection,而连接池并不知道该connection以及失效,如果这时Client请求connection,DBCP将该失效的connection提供给client,将会造成异常。

 

修改MySql数据库中wait_timeout参数

-- 用命令查看数据库的过期时间
show variables like '%timeout%'

-- interactive_timeout, wait_timeout最好一起改
set global interactive_timeout = 3600;
set global wait_timeout = 3600;

 

posted @ 2024-05-06 10:06  马铃薯1  阅读(287)  评论(0编辑  收藏  举报