TP5.0.24长连接超过必报错

浏览:327 发布日期:2019/04/02
5.0.0 - 严重 - 未处理
今天在日志文件看到一个错误:PDO::__construct(): MySQL server has gone away。
查询后知道原因是:mysql连接超时。
也就是:在超过MySQL的wait_timeout设置的最大值(默认8小时)后必报错.
问题重现方式(前提条件:相应的配置信息都已在数据库配置文件配置完成):
在本地(Apache服务器)使用phpstudy集成环境。将MySQL的wait_timeout设置为30秒,在第一次请求(必须与数据库交互)成功后,30秒后再次请求必然报错
错误提示信息:[2] ErrorException in Connection.php line 295
PDO::__construct(): MySQL server has gone away
在linux系统中以FPM模式运行,将MySQL的wait_timeout设置为30秒,假设起始进程为10个,在连续请求10次后生成10个长连接后,30秒后再次请求必定报错,错误信息相同,如上。
解决方式:
在Connection.php line文件的第295行前加个错误抑制符@就可解决,但是我觉得这种方式并非完美方案。还请解决此问题,我是想通过FPM+长连接实现伪连接池的时候发现的这个问题
我看了5.0和5.1两个版本的源代码,代码相同,应该都会出现这个问题

评论(
后面还有条评论,点击查看>>