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連接池


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM