thinkphp CLI模式 pcntl守护进程无法连接mysql

齐天哒胜 2015-12-05 02:45:24
在linux服务器,nginx下
使用cli模式,开启守护进程执行个同步数据操作,但是在Daemon->start下面实例化数据库就一直报错,连接不上mysql。
测试人员都等测我这里呢,好烦躁,想了好多办法都不行。
在自己的测试机上都没什么问题,测试机是apapche!


下面是报错信息
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
FILE: /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/Db/Driver.class.php(209)
#0 /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/Db/Driver.class.php(209): PDOStatement->execute()
#1 /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/Db/Driver.class.php(788): Think\Db\Driver->execute('INSERT INTO `cc...', false)
#2 /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/Model.class.php(319): Think\Db\Driver->insert(Array, Array, false)
#3 /opt/nginx/html/kuanianhudong/Application/Common/Common/function.php(1333): Think\Model->add(Array)
#4 /opt/nginx/html/kuanianhudong/Application/Api/Controller/DaemonController.class.php(23): get_Comment_ID()
#5 [internal function]: Api\Controller\DaemonController->comment()
#6 /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/App.class.php(156): ReflectionMethod->invoke(Object(Api\Controller\DaemonController))
#7 /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/App.class.php(194): Think\App::exec()
#8 /opt/nginx/html/kuanianhudong/ThinkPHP/Library/Think/Think.class.php(120): Think\App::run()
#9 /opt/nginx/html/kuanianhudong/ThinkPHP/ThinkPHP.php(97): Think\Think::start()
...全文
508 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_17167577 2015-12-05
  • 打赏
  • 举报
回复
pcntl_fork前不要连数据库,否则就会报MySQL server has gone away错误。 原因是子进程会继承主进程的数据库连接,当mysql返回数据时,这些子进程都可以通过这个连接读到数据, 造成数据错乱。
xuzuning 2015-12-05
  • 打赏
  • 举报
回复
2006 :MySQL服务器不可用 可能是 MySQL 服务没有启动 也可能是 服务器主机名 写错了

20,398

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧