【发布时间】:2011-10-12 09:50:32
【问题描述】:
我有一个分叉进程的守护进程。
此守护进程使用 mysql 连接器库访问数据库。
当我不分叉时,我可以很好地打开和读取数据库,但是,当我分叉时,我得到了
MySQL server has gone away
第一次查询时一直出错...
有人知道是什么原因造成的吗?
【问题讨论】:
我有一个分叉进程的守护进程。
此守护进程使用 mysql 连接器库访问数据库。
当我不分叉时,我可以很好地打开和读取数据库,但是,当我分叉时,我得到了
MySQL server has gone away
第一次查询时一直出错...
有人知道是什么原因造成的吗?
【问题讨论】:
编辑哦,我的误解很抱歉
daemonized/non-daemonized 之间的差异问题仍然大致与以下几类选项有关:
分离的 stdin/stdout 导致麻烦(IMO 这意味着设计糟糕的库,但我是谁)
注意特定资源(文件锁、套接字连接、线程 (!))不跨 fork/execve 继承。我建议阅读有关守护进程的链接(如下),尤其是关于“互斥和运行单个副本 [open,lockf,getpid]”的部分
我确定我忘记了一些东西
Ermm... 你启动 mysql 服务器进程是为了什么? Mysql 有很多声音初始化脚本确实可以工作。
关于适当的守护进程:http://www.enderunix.org/docs/eng/daemon.php
注意与分叉子共享资源的影响(例如文件描述符)。
除此之外,您可能只是缺少基本的环境设置。仔细阅读官方的 mysql 初始化脚本,找出你需要的。
【讨论】: