当前位置: 首页 > 后端技术 > PHP

ThinkPHP5.0.-版本cli模式下,php每隔一段时间就报错

时间:2023-03-30 00:15:40 PHP

关于ThinkPHP5.0.*versionphperroreverytimeinclimodePHPerroreverytimeunderclimode官方论坛日志如下:ConsoleUncaughtthinkexceptionErrorException:ErrorwhilesendingSTMT_CLOSEpacket。/www/web/work/public_html/thinkphp/library/think/db/Connection.php:318log文件中的PID=23951thinkdbConnection::free():sendof9bytesfailedwitherrno=32Brokenpipe分析原因数据库将长时间断线但新版本会改进断线重连机制解决方案1.临时解决方案修改/thinkphp/library/think/db/Connection.php1.1是否需要断线重连'break_reconnect'=>true,1.2release查询结果捕获异常publicfunctionfree(){try{$this->PDOStatement=null;}catch(Exception$e){Log::write("freePDOStatementmaybemysqlgoneaway时出现错误,skipit:".$e->getMessage(),log::DEBUG);}}1.3是否断开,修改为master最新保护的函数isBreak($e){if(!$this->config['break_reconnect']){returnfalse;}$info=['serverhasgoneaway','noconnectiontotheserver','Lostconnection','isdeadornotenabled','Errorwhilesending','decryption失败或错误记录mac','servercl意外关闭连接'、'SSL连接意外关闭'、'将数据写入连接时出错'、'避免了资源死锁'、'失败并显示errno'、'发送33个字节失败并显示errno=32损坏的管道'、];$error=$e->getMessage();foreach($infoas$msg){if(false!==stripos($error,$msg)){返回真;}}returnfalse;}2.官方建议使用最新版本解决此问题。作者:HD2killers来源:CSDN原文:https://blog.csdn.net/HD2kill...版权声明:本文为博主原创文章,转载请附上博文链接!