MYSQL Packets out of order. Expected 1 received 56. Packet size=3420216错误

报错信息:

PHP Warning:  Packets out of order. Expected 1 received 56. Packet size=3420216 in /data/bogiang/test/EC/swoole_process.php on line 62

Warning: Packets out of order. Expected 1 received 56. Packet size=3420216 in /data/bogiang/test/EC/swoole_process.php on line 62
PHP Warning:  PDO::query(): MySQL server has gone away in /data/bogiang/test/EC/swoole_process.php on line 62

Warning: PDO::query(): MySQL server has gone away in /data/bogiang/test/EC/swoole_process.php on line 62
PHP Warning:  PDO::query(): Error reading result set's header in /data/bogiang/test/EC/swoole_process.php on line 62

Warning: PDO::query(): Error reading result set's header in /data/bogiang/test/EC/swoole_process.php on line 62
PHP Fatal error:  Uncaught Error: Call to a member function fetchAll() on bool in /data/bogiang/test/EC/swoole_process.php:63
Stack trace:
#0 [internal function]: {closure}(Object(Swoole\Process))
#1 /data/bogiang/test/EC/swoole_process.php(67): Swoole\Process->start()
#2 {main}
  thrown in /data/bogiang/test/EC/swoole_process.php on line 63

Fatal error: Uncaught Error: Call to a member function fetchAll() on bool in /data/bogiang/test/EC/swoole_process.php:63
Stack trace:
#0 [internal function]: {closure}(Object(Swoole\Process))
#1 /data/bogiang/test/EC/swoole_process.php(67): Swoole\Process->start()
#2 {main}
  thrown in /data/bogiang/test/EC/swoole_process.php on line 63

造成原因:

image
多进程使用同一个mysql链接导致出来的。

为什么会出现这问题:

1.多进程中MYSQL不可以使用同一个链接
2.如果使用需要一个连接池

网上查看了几篇报错的原因:
Thinkphp5框架使用swoole,数据连接报Packets out of order.
PHP MYSQL Packets out of order. Expected 1 received 0. Packet size=
为什么DB连接管理一般不采用IO多路复用?

解决问题:

1、在每个进程里进行链接mysql
2、使用连接池,避免这个问题
php搭建mysql连接池

posted @ 2021-06-22 12:30  bogiang  阅读(2673)  评论(0编辑  收藏  举报