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()
...全文
235 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qq_17167577 2015-12-05
pcntl_fork前不要连数据库,否则就会报MySQL server has gone away错误。 原因是子进程会继承主进程的数据库连接,当mysql返回数据时,这些子进程都可以通过这个连接读到数据, 造成数据错乱。
回复
xuzuning 2015-12-05
2006 :MySQL服务器不可用 可能是 MySQL 服务没有启动 也可能是 服务器主机名 写错了
回复
相关推荐
发帖
PHP
创建于2008-08-27

1.9w+

社区成员

“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
申请成为版主
帖子事件
创建了帖子
2015-12-05 02:45
社区公告
暂无公告