top
Loading...
2.12.4.1.FreeBSD注意事項
2.12.4.1. FreeBSD注意事項

對于運行MySQL,推薦使用FreeBSD 4.x或更新版本,因為其線程包更加完整。要想遇到一個安全、穩定的系統,你應當只使用標記-RELEASEFreeBSD內核。

最容易因此是比較受喜歡的安裝方法是使用mysql-servermysql-client移植,可從http://www.freebsd.org得到。

使用這些移植的益處包括:

  • 一個全優化的工作在FreeBSD版本上的MySQL
  • 自動配置和構建。
  • 啟動腳本安裝在/usr/local/etc/rc.d

·         pkg_info -L察看哪個文件被安裝的能力

·         如果你在那臺機器上不再想要MySQL,用pkg_delete完全刪除它們。

建議在FreeBSD 2.x版上使用 MIT-pthreads,在版本3和以上版本用原生線程。在一些2.2.x的以后版本使用原生線程運行是可能的,但是你可能碰到mysqld關掉的問題。

遺憾的是,FreeBSD調用的某些函數還不能完全保證線程安全。特別令人注意的是,包括gethostbyname()函數, MySQL使用該函數將主機名轉換為IP地址。在某些環境中,mysqld進程會突然造成100%CPU負荷,不再響應。如果你遇到該問題,嘗試使用--skip-name-resolve選項啟動MySQL

另外,還可以將FreeBSD 4.x中的MySQLLinuxThreads庫連接,這樣可以避免一些原生FreeBSD線程執行時的問題。為了更好地將LinuxThreads同原生線程進行對比,參見Jeremy Zawodny的文章FreeBSD or Linux for your MySQL Server? 地址:http://jeremy.zawodny.com/blog/archives/000697.html

FreeBSD使用LinuxThreads的已知問題有:

·         連接時間(wait_timeoutinteractive_timeoutnet_read_timeout)值不理想。現象是永久連接掛起較長時間,不能關閉,只有線程執行新命令時 'kill'線程方有效。

這可能是線程庫中的信號處理問題,信號不能中斷掛起的讀命令。期望在FreeBSD 5.0中修復。

MySQL構建進程需要GNU make(gmake)工作。如果沒有GNU make,必須在編譯MySQL前先安裝它。

建議的在FreeBSD中用gcc(2.95.2和以上版本)編譯和安裝MySQL的方法是:

CC=gcc CFLAGS="-O2 -fno-strength-reduce" 
    CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions 
    -felide-constructors -fno-strength-reduce" 
    ./configure --prefix=/usr/local/mysql --enable-assembler
gmake
gmake install
cd /usr/local/mysql
bin/mysql_install_db --user=mysql
bin/mysqld_safe &
 

如果configure使用MIT-pthreads,應當閱讀MIT-pthreads注意事項。請參見2.8.5節,“MIT-pthreads注意事項”。

如果你從make install遇到一個它不能找到/usr/include/pthreads的錯誤,configure沒有檢測出你需要MIT-pthreads。要修復該問題,移走config.cache,然后用--with-mit-threads選項重新運行configure

確定讓你的名字解析程序安裝正確,否則當連接mysqld時,你可能會遇到解析延時或失敗。保證在/etc/hosts文件中的localhost入口是正確的。/etc/hosts文件應該以下面一行開始:

127.0.0.1       localhost localhost.your.domain

已知FreeBSD的文件句柄限制默認值很低。請參見A.2.17節,“文件未找到”。使用--open-files-limit選項執行mysqld_safe啟動服務器,或在/etc/login.confmysqld用戶提高限制并用cap_mkdb /etc/login.conf重建它。如果你不使用默認名(即使用chpass mysqld-user-name),還要保證為該用戶設置在密碼文件中的相應級別。請參見5.1.3節,“mysqld_safe:MySQL服務器啟動腳本”。

FreeBSD將進程空間限制到512MB,即使系統有很多的可用RAM也如此。因此你可能會遇到如下所示錯誤:

Out of memory (Needed 16391 bytes)

在當前版本的FreeBSD(至少4.x和更高版本)中,你可以在/boot/loader.conf文件中增加下面的條目并重啟機器增加該限制(不能在運行時間用sysctl命令更改這些設定值)

kern.maxdsiz="1073741824" # 1GB
kern.dfldsiz="1073741824" # 1GB
kern.maxssiz="134217728" # 128MB

在舊版本的FreeBSD中,必須重新編譯內核,以便更改進程的最大數據段空間。在這種情況下,應當查看LINT配置文件中的MAXDSIZ選項查看更詳細的信息。

如果MySQL的當前日期有問題,設置TZ變量將會有幫助。請參見附錄F:環境變量

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/installing.html
北斗有巢氏 有巢氏北斗