我有一个守护进程分叉进程。C++守护进程分叉会导致mysql错误
该守护进程使用mysql连接库访问数据库。
当我不叉,我能够打开和读取数据库的罚款,然而,当我叉,我得到
MySQL server has gone away
错误始终在第一个查询...
任何人知道什么可能造成这种情况?
我有一个守护进程分叉进程。C++守护进程分叉会导致mysql错误
该守护进程使用mysql连接库访问数据库。
当我不叉,我能够打开和读取数据库的罚款,然而,当我叉,我得到
MySQL server has gone away
错误始终在第一个查询...
任何人知道什么可能造成这种情况?
编辑哦,我对之间的守护进程的/非进程化,曲解
仍与差异的问题道歉,大致有以下类的选项:
分离标准输入/输出造成麻烦(IMO这将意味着设计不佳的库,但我是谁)
观看特定资源(文件锁定,套接字连接,线程(!))的不通过fork/EXEC继承ve。我建议你阅读链接的系统守护进程(下同),尤其是例如在“互斥和运行一个单一副本[开放,提供lockf,GETPID]”一节
我敢肯定,我忘了的东西
呃...你是什么启动一个MySQL服务器进程? Mysql有大量可靠的初始化脚本,可以工作。
在适当的系统守护进程的主题:用叉子儿童(例如文件描述符)资源共享的效果http://www.enderunix.org/docs/eng/daemon.php
留意。
除此之外,你可能只是缺少基本的环境设置。仔细阅读mysql的官方init脚本,找出你需要的。
你是什么意思开始一个MySQL服务器进程?我正在做我自己的守护进程,只是使用MySQL连接库来访问数据库。我不会在fork之前保留任何文件描述符。我需要的一切都是在分叉后创建的。 – user623879
对不起,误解了。更多的背景信息更新的答案 – sehe
我禁用stdin /标准输出/ stderr..apparently MySQL连接器依赖于此ffs ...感谢提及! – user623879