mysql多线程访问总结

  近来多线程运行一段时间就报2006错误。而且一旦出现2006,就再也无法正常查询数据库了。怀疑是多线程问题。从网上搜索了一下,总结方法:

  • 使用--with-thread-safe-client编译终端。
  • 如果几个共用一个MYSQL*,在mysql_query和mysql_store_result之间,不能有其他数据库动作(查询、修改、删除等)。为此,需要使用线程锁。

这个有点麻烦,特别是在判断各种出错情况下。

  • 多线程编程写法:

在主线程中,调用 mysql_library_init(0, NULL, NULL)、mysql_library_end()。

初始化:mysql_thread_init();MYSQL *mysql = mysql_init(NULL);

关闭:mysql_close(mysql); mysql_thread_end();

  具体情况,继续观察。

  就个人感觉,应该说第二种方法最好。

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/85678709