linux 下mysql多线程支持问题

mysql官方提供的linux二进制编译包都无法支持posix多线程环境。很多mysql 的API,都无法真正支持多线程环境。

一般解决此类问题,需要从新编译mysql源码生成适合项目的mysql安装包。mysql源码编译都非常简单,通过./configure --help可以查看编译选项。多线程支持方面只要注意选择--with-pthread和--enable-thread-safe-client选项就可以了。第一项可以指明使用posix线程(unix的编译方式可能会有些不一样,因为unix的内核线程工作方式与linux线程工作方式有比较大的区别,尤其freebsd)。

编译过程很简单,首先./congiure --prefix =安装路径  --选项 .....还可以在此设置mysql默认的编码规则,例如默认为gb2312编码

然后make,makeinstall。在安装路径下访问/share/mysql/mysql.server start就可以启动mysql,但在此之前必须设置mysql的用户和/etc/my.cnf文件。

如果采用c/c++访问mysql,则gcc 编译默认选项需要引用-lmysqlclient_r包,而不是原先的-lmysqlclient。

总体来说mysql的c/c++的多线程支持方面还是很不错的。

 

posted on 2007-01-10 17:48  reck for zhou  阅读(1391)  评论(0编辑  收藏  举报

导航