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;