大佬们 webman报错2006 MySQL server has gone away

white

问题描述

大家好,我在使用Webman服务时遇到一个问题。我的线上服务一直在运行,最近进行了一次蓝绿部署,切换了AWS云厂商的MySQL连接(使用域名连接)。切换后,出现了以下报错:

SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

烦请教下各位大佬有没有好的破解之法

为此你搜索到了哪些方案及不适用的原因

我有一个猜测:蓝绿部署的过程大概是先将主库切换到备库,确保binlog同步后,再让主库漂移到备库。而我代码中使用的是域名链接MySQL,这样可能导致在切换过程中,原来域名指向的IP(例如 192.168.0.1)切换到了新的IP(例如 192.168.0.2)。但进程中的老代码仍然使用的是旧的IP地址,因此连接不到新的MySQL实例,进而导致了该错误。如果是这种可能,怎么做到这种情况在发现链接异常时断线重新

备注:我使用的thinkorm组件,配置中已经启用 'break_reconnect' => true,// 断线重连
这种配置在常规的MySQL断线(IP不变的情况下)是有效的,但在蓝绿部署的这种情况下,似乎不起作用。

备注:
workerman/webman-framework: "^1.5.0"
webman/think-orm: "^1.0"
Workerman version:4.1.9
php版本:8.1
mysql版本:8.0

179 1 0
1个回答

shiroi
  • 暂无评论
×
🔝