mysql连接后,会返回一个连接标识符,mysql靠这个和客户端程序互动。如果你取得连接标识后再fork,那么会否这个标识符也被fork成若干份且相同,造成mysql不能识别来自哪个请求而报错,要么就是相反,连接标识符没有被带到新的进程中。
纯瞎猜哦,我没有做过类似的程序。

解决方案 »

  1.   


    可能就是fork之后把这个连接标识也带进去了
    但如果像对socket一样,fork里面closesocket(新的连接标识),并在fork之后立马也关闭这个连接
    不知道可行不?还有其它原因吗
      

  2.   

    已经试过了
    在fork里面关闭并且在外面关闭这个连接标识都会出错
    并且我那个连接标识是static MYSQL *mySQL;的
      

  3.   

    没有及明关连接关闭???我是想在程序中实现长连接
    所以就保存了与mysql的连接标识的