资讯专栏INFORMATION COLUMN

ThinkPHP5.0.*版本 cli模式下php每隔段时间就出错

CloudwiseAPM / 2322人阅读

摘要:关于版本模式下每隔段时间就出错模式下每隔段时间就出错官方论坛日志如下控制台文件分析原因长时间数据库会断线但是新版本会改进断线重连机制解决方案临时解决修改是否需要断线重连释放查询结果捕获异常是否断线,修改为最新官方推荐使用最新版本以解

关于ThinkPHP5.0.*版本 cli模式下php每隔段时间就出错
cli模式下php每隔段时间就出错
官方论坛
日志如下:

控制台

Uncaught thinkexceptionErrorException: Error while sending STMT_CLOSE packet. PID=23951 in /www/web/work/public_html/thinkphp/library/think/db/Connection.php:318

log文件

thinkdbConnection::free(): send of 9 bytes failed with errno=32 Broken pipe

分析原因

长时间数据库会断线 但是新版本会改进断线重连机制

解决方案

1.临时解决 修改/thinkphp/library/think/db/Connection.php 1.1是否需要断线重连

"break_reconnect" => true,

1.2 释放查询结果 捕获异常

public function free()
{

try {
    $this->PDOStatement = null;
} catch (Exception $e) {
    Log::write("has error when free PDOStatement maybe mysql gone away,skip it:" . $e->getMessage(), log::DEBUG);
}

}

1.3 是否断线,修改为master最新

protected function isBreak($e)
{

if (!$this->config["break_reconnect"]) {
    return false;
}

$info = [
    "server has gone away",
    "no connection to the server",
    "Lost connection",
    "is dead or not enabled",
    "Error while sending",
    "decryption failed or bad record mac",
    "server closed the connection unexpectedly",
    "SSL connection has been closed unexpectedly",
    "Error writing data to the connection",
    "Resource deadlock avoided",
    "failed with errno",
    "send of 33 bytes failed with errno=32 Broken pipe",
];

$error = $e->getMessage();

foreach ($info as $msg) {
    if (false !== stripos($error, $msg)) {
        return true;
    }
}
return false;

}

2.官方推荐使用最新版本以解决此问题

作者:HD2killers
来源:CSDN
原文:https://blog.csdn.net/HD2kill...
版权声明:本文为博主原创文章,转载请附上博文链接!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29796.html

相关文章

  • TP-admin即基于ThinkPHP5拿来即用高性能后台管理系统

    摘要:即基于拿来即用高性能后台管理系统官方文档地址在线体验地址账户密码线上仓库在线地址源代码下载克隆直接下载本地部署运行环境要求建议配置虚拟域名若不清楚,请自行解决之,方便接下来开展你的开发工作。 新版本在线体验地址已经上线,欢迎体验? ---2017-01-14 喜欢就Star,不只是Fork; 想要分享的动机才是驱动力,而技术仅仅是一种方法。 ====================...

    Hydrogen 评论0 收藏0
  • TP-admin即基于ThinkPHP5拿来即用高性能后台管理系统

    摘要:即基于拿来即用高性能后台管理系统官方文档地址在线体验地址账户密码线上仓库在线地址源代码下载克隆直接下载本地部署运行环境要求建议配置虚拟域名若不清楚,请自行解决之,方便接下来开展你的开发工作。 新版本在线体验地址已经上线,欢迎体验? ---2017-01-14 喜欢就Star,不只是Fork; 想要分享的动机才是驱动力,而技术仅仅是一种方法。 ====================...

    Aklman 评论0 收藏0
  • 浅谈ThinkPHP 5.0

    摘要:杰出的数据库迁移工具和紧密集成的单元测试支持,这些工具赋予你构建任何应用的能力。浅谈应公司要求,现在用重新搭一个框架,接触了几天对它也有了一定的了解。浅谈支持,支持单元测试。更加严谨了,异常严谨的错误检测和安全机制。 自从接触php开始,用的就是thinkphp框架,它给我的感觉是轻量,且容易上手。后来进了一家外包公司又用了laravel框架,个人觉得laravel还是很高大上的,功能...

    mtunique 评论0 收藏0
  • ThinkPHP5.0 Linux Apache/Nginx重写URL配置

    摘要:如果你的应用安装在二级目录,的伪静态方法设置如下,其中是所在的目录名称。 作者系统是Ubuntu,CentOS及其他linux发行版请自行变更PHP框架是ThinkPHP5.0,官方文档说的有些模糊,所以自行补充了一下有错误欢迎随时指出 可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考: [Apache] 1.启用rewrite模块 2.sudo a2...

    Bryan 评论0 收藏0

发表评论

0条评论

CloudwiseAPM

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<