MySQL在RH7.0上的BDB表配置
发表于:2007-05-25来源:作者:点击数:
标签:
由 徐永久 发表于 2001年10月16日 11 : 51。 注意 : 本文还处于 Beta 版本 ! 很多人对于 MySQL 一个最大的误解就是 MySQL 的事务处理功能。 从 MySQL 3 . 23 开始 , 就开始支持 BDB 表类型 , 但是需要首先编译 BDB 支持 , 而在 Red Hat 7 . 0 上的编译
clearcase/" target="_blank" >cc>由 徐永久 发表于 2001年10月16日 11:51。
注意:本文还处于 Beta 版本!很多人对于 MySQL 一个最大的误解就是 MySQL 的事务处理功能。
从 MySQL 3.23 开始,就开始支持 BDB 表类型,但是需要首先编译 BDB 支持,而在 Red Hat 7.0 上的编译,一直存在问题。就是看上去编译成功,
> show table status
也显示表类型为 BDB ,但是如果使用 begin 语句,定义事务的话,接下来的 rollback 语句却不能回滚事务。
笔者在实践中总结出的结论就是,需要安装 RH7.0 中的 db*devel.rpm 包,我们知道 RPM 4 以上的版本采用了最新的 BDB db3 格式来存储软件包信息,而 BDB 数据库包在有些库函数上是和这些软件是相关的,因此,我们怀疑这个问题和 RH7 中 BDB 相关的包有关。果然,在我们安装完 db1-devel.rpm 和 db3-devel.rpm 以后,重新编译 MySQL ,事务处理就正常了。
首先编译 BDB(下载的版本是 MySQL 网站上的 db3.2.9h.tar.gz,直接从 Berkeyley DB 网站上下载的软件包是不能使用的,编译MySQL 时会出错):cd build-unix
../dist/configure
make
make install
然后编译 MySQL:./configure --prefix=/usr/local/mysql --with-berkeley-db=/usr/local/BerkeyleyDB3.2 --with-tcp-port=9999 --withmysqld-user=mysql --with-charset=gb2312 --with-extra-charsets=latin1
需要说明的是,MySQL 从 3.23.35 开始内置了 BDB ,因此,我们可以省去前面编译 BDB 的过程,但是需要在编译 MySQL 时要把 --with-berkeley-db 部分改为:--with-berkeley-db=./bdb
同时,从这个版本开始,还支持 Innobase,另外一种支持事务处理的数据库类型。
我们只要在 my.cnf 中指定
..
就可以使用 innobase 类型的数据库了。
从配置的过程看上去很像 Sybase 等大型数据库了。
看样子, MySQL 会在功能上走得更远。
原文转自:http://www.ltesting.net
|