doctrine-orm之Gearman、ZF2、Doctrine2、MySQL、SQLSTATE[HY000] : General error: 2006 MySQL server has gone away
telwanggs
阅读:166
2025-02-15 21:57:57
评论:0
我使用 ZF2、Doctrine2、MySQL、Gearman。
Gearman 定期工作时出现错误:
SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已经消失。
我尝试了以下步骤来解决问题:
1) 我调查了 MySQL 查询。
查询没有任何问题。它很简单(没有子查询)而且速度很快。
例如,这是 MySQL 服务器消失时查询之一的 EXPLAIN。
+-------------+-------+-------+-----------------------+-----------------------+---------+-------+------+
| select_type | table | type | possible_keys | key | key_len | ref | rows |
+-------------+-------+-------+-----------------------+-----------------------+---------+-------+------+
| SIMPLE | t0 | const | UNIQ_8D93D649E7927C74 | UNIQ_8D93D649E7927C74 | 767 | const | 1 |
| SIMPLE | t13 | const | UNIQ_BA388B79395C3F3 | UNIQ_BA388B79395C3F3 | 5 | const | 1 |
+-------------+-------+-------+-----------------------+-----------------------+---------+-------+------+
2) 我尝试了 this post 中的版本(重新连接到数据库)但这对我没有帮助。我的一些查询丢失了。
3) 我禁用了除 3 之外的所有 Gearman 工作和工作人员进行测试。我清理了 Gearman 队列并重新启动了 Gearman 服务器和 Gearman 工作人员。但这对我没有帮助。
4) 我为 MySQL 启用了这些设置:
max_allowed_packet = 500M
max_connections = 2000
max_user_connections = 300
wait_timeout = 3600
net_read_timeout = 3600
有人可以帮忙吗?
谢谢!
请您参考如下方法:
每个工作脚本应该在开始时连接到数据库并在结束时断开连接。不要试图保持打开连接,好像 MySQL 超时一样,那么您的脚本将不会注意到这就是为什么您会收到错误的原因。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。