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