報錯信息:
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
造成原因:
多進程使用同一個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連接池