【问题标题】:C++ daemon forking causes mysql errorsC++ 守护进程分叉导致 mysql 错误
【发布时间】:2011-10-12 09:50:32
【问题描述】:

我有一个分叉进程的守护进程。

此守护进程使用 mysql 连接器库访问数据库。

当我不分叉时,我可以很好地打开和读取数据库,但是,当我分叉时,我得到了

MySQL server has gone away 

第一次查询时一直出错...

有人知道是什么原因造成的吗?

【问题讨论】:

    标签: fork daemon


    【解决方案1】:

    编辑哦,我的误解很抱歉

    daemonized/non-daemonized 之间的差异问题仍然大致与以下几类选项有关:

    我确定我忘记了一些东西

    Ermm... 你启动 mysql 服务器进程是为了什么? Mysql 有很多声音初始化脚本确实可以工作

    关于适当的守护进程:http://www.enderunix.org/docs/eng/daemon.php

    注意与分叉子共享资源的影响(例如文件描述符)。

    除此之外,您可能只是缺少基本的环境设置。仔细阅读官方的 mysql 初始化脚本,找出你需要的。

    【讨论】:

    • 启动一个mysql服务器进程是什么意思?我正在制作自己的守护进程,它只使用 mysql 连接器库来访问数据库。我没有在 fork 之前保留任何文件描述符。我需要的一切都是在分叉后创建的。
    • 抱歉误解了。更新了更多背景信息的答案
    • 我正在禁用 stdin/stdout/stderr ..显然 mysql 连接器依赖于这个 ffs ......谢谢你提到这一点!!!!
    • 你知道关于 start-stop-daemon 的任何事情吗...它在停止进程时给我带来了麻烦。
    • @user623879:很高兴它对您有所帮助;现在,不幸的是,我对 start-stop-daemon 的了解大部分来自手册页。但如果它有帮助,它将与 pidfile 有关。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2023-03-19
    • 2012-07-28
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    相关资源
    最近更新 更多