スレッドパッケージがより統合されているので FreeBSD 4.x 以降を推奨します。
最も簡単な、したがって最も望ましいインストール方法は、mysql-server と mysql-client の ports(http://www.freebsd.org/ で入手できる)を使用することです。
これらの ports を使用すると以下のことを実現できます。
使用している FreeBSD に最適な MySQL 。
自動設定およびビルド。
/usr/local/etc/rc.d にインストールされた起動スクリプト。
pkg_info -L
を使用して、インストールされているファイルを確認することが可能。そのマシンに
MySQL
が不要になったら、pkg_delete
を使用してそれらのファイルをすべて削除することが可能。
FreeBSD 2.x では MIT-pthreads を、バージョン 3
以降ではネイティブスレッドを、それぞれ使用することをお勧めします。一部の後期
2.2 x
バージョンでは、ネイティブスレッドを使用して実行できますが、mysqld
をシャットダウンする際に問題が発生することがあります。
FreeBSD
上の一部の関数呼び出しは、まだ完全にはスレッドセーフではありません。最も顕著なのは、MySQL
がホスト名を IP
アドレスに変換するために使用する
gethostbyname()
関数です。特定の状況下で、mysqld
プロセスは、突然、CPU 負荷 100%
状態を引き起こして、応答不能になります。この状態が発生したら、--skip-name-resolve
オプションを使用して MySQL
を起動してみてください。
あるいは、FreeBSD 4.x 上で MySQL を LinuxThreads ライブラリにリンクします。これによって、ネイティブの FreeBSD スレッド実装が持つ 2、3 の問題が回避されます。LinuxThreads とネイティブスレッドの非常に優れた比較については、"FreeBSD or Linux for your MySQL Server?" という Jeremy Zawodny の記事(http://jeremy.zawodny.com/blog/archives/000697.html)を参照してください。
FreeBSD で LinuxThreads を使用した場合の既知の問題は以下のとおりです。
wait_timeout
は機能していない(FreeBSD/LinuxThreads
のシグナル処理の問題である可能性がある)。この問題は、FreeBSD
5.0 で修正される予定となっている。
永続的な接続がクローズされずに長時間ハングするという現象が発生する。
MySQL Makefile
を使用するには、GNU make
(gmake
)が機能している必要があります。MySQL
をコンパイルする場合は、最初に GNU
make
をインストールする必要があります。
ネームリゾルバの設定に誤りがないようにしてください。設定に誤りがあると、mysqld
に接続するときにリゾルバが遅延または失敗することがあります。
/etc/hosts
ファイルの
localhost
エントリが正確であることを確認してください。正確でないと、データベースに接続する際に問題が発生します。/etc/hosts
ファイルは、以下の行で始まっていなければなりません。
127.0.0.1 localhost localhost.your.domain
gcc(2.95.2 以降)を使用して FreeBSD 上で 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 ./scripts/mysql_install_db cd /usr/local/mysql ./bin/mysqld_safe &
configure
が MIT-pthreads
を使用することがわかった場合は、MIT-pthreads
の注意事項を読んでください。 See
項2.3.6. 「MIT-pthreads に関する注意事項」。
make install
が
/usr/include/pthreads
を検出できないというエラーを出力した場合は、configure
が MIT-pthreads
が必要なことを検出しなかったことを意味します。このエラーは、以下のコマンドを実行して修正します。
shell>rm config.cache
shell>./configure --with-mit-threads
FreeBSD
は、デフォルトのファイルハンドルの上限が非常に低く設定されていることも知られています。See
項A.2.17. 「File Not Found エラー」。
mysqld_safe
の ulimit
-n
セクションのコメントを解除するか、/etc/login.conf
で mysqld
ユーザに対する上限を増やして cap_mkdb
/etc/login.conf
で再ビルドします。
また、デフォルトの値を使用しない場合は、必ずこのユーザに適切なクラスを設定してください(chpass
mysqld-user-name
が使用できる)。 See
項4.8.2. 「mysqld_safe
(mysqld
のラッパ)」。
メモリに余裕がある場合は、MySQL が 512 MB
を超える RAM
を取得できるようにカーネルを再ビルドすることを検討してください。
詳細情報が必要な場合は、LINT 設定ファイルの
option MAXDSIZ
を調べてください。
MySQL
の現在の日付に関する問題が発生した場合は、TZ
変数を設定することでおそらく解決します。
See 付録 F. 環境変数。
安全で安定したシステムにするには、-RELEASE
と指定された FreeBSD
カーネルだけを使用してください。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.