MySQL在Red Hat 7.0上的BDB表配置

subid發表於2007-08-12
MySQL在Red Hat 7.0上的BDB表配置[@more@]注意:本文還處於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會在功能上走得更遠。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10796304/viewspace-952498/,如需轉載,請註明出處,否則將追究法律責任。

相關文章