环境:
windows2003 mysql5.0我使用C API创建的连接。初始化连接后不是有个MYSQL的结构体如pmysql,在连续执行了很久之后,就无法再继续查询。我在trycatch里面竟然会捕捉到异常,这个异常不是mysql自己提示的sql语句异常。而是整个程序就出问题了。
后来我观察了MYSQL连接结构体,我打印出异常前的信息,发现那个时候MYSQL->Thread_id竟然变成0了。这个时候用这个链接进行所有查询,都会导致程序出错,报出异常。我还是尝试过,在执行mysql_init之后,thread_id的值的确是0,执行real_connect后就分配为大于0的值了。而且如果我不执行connect就用它来进行查询,也是不会导致程序出错的。完全不知道是什么原因导致的。求高手帮忙分析下啊。。

解决方案 »

  1.   

    捕获到异常了,就重新real_connect连接一下数据库等,再进行后面查询操作
      

  2.   

    我现在就是这样操作的。。之前的连接就不管它,不没有执行close的操作现在程序还一直在运行着,没出问题。
    我就十分想知道这是为啥照成的。
      

  3.   


    嗯,那连接之前设置的reconnect那个东西,似乎在这种情况下是不管用了哦。
    对于my.ini的配置,有没有方法提高点什么东西,像buffer的大小之类的,会不会减少这种出错的可能性。