mysql断线重连不起作用

GatewayWorker+thinkphp5.1,操作数据库,使用TP的DB类,Mysql数据库默认连接是8小时。
在TP的命令行下的其他命令,配置断线重连,始终有效。

config('database.break_reconnect',true);
Db::Connect(config('database.'));


但在GatewayWorker中,大约每隔48小时,数据库就会连接失败:
1.png


GatewayWorker进程中,数据库初始化连接如下:
2.png


在重连1次失败后,再次重连就发生:“error: 2006 MySQL server has gone away”错误。

再次强制重连,依然无效:

3.png



暂时的解决办法就是stop停止GatewayWorker,再重新start -d启动GatewayWorker。
这样马上就能连接成功,数据立即能更新。

请walkor老大帮忙排查一下原因。快个把月了,采取了各种方法,都不行。
已邀请:

walkor

赞同来自:

你可以尝试下用完数据库就关闭,用的时候再连

Heywood - Hello Word

赞同来自:

大神如果用您说的方式 , 执行mysql事务还会有作用吗?

寒川 - 你好世界!

赞同来自:

也遇到过这个问题,已经解决

guonan89 - 90

赞同来自:

能请教下怎么解决的吗?

要回复问题请先登录注册