MySQL は、Linux バージョン 2.0 以降を必要とします。
警告: 一部の MySQL ユーザからLinux カーネル 2.2.14 を使用する MySQL で重大な安定性の問題が発生したことが報告されています。このカーネルを使用している場合は、カーネル 2.2.19 以降またはカーネル 2.4 にアップグレードしてください。マルチ CPU マシンを使用している場合は、カーネル 2.4 によって処理速度が飛躍的に向上するので、使用を検討してください。
バイナリリリースは、-static
でリンクされます。したがって、通常は使用するシステムライブラリのバージョンを気にする必要はありません。また、LinuxThreads
をインストールする必要もありません。-static
でリンクされたプログラムは、動的にリンクされたプログラムよりも少し大きいですが、速度も少し(3
〜
5%)上がります。ただし、静的にリンクされたプログラムにはユーザ定義関数(UDF)を使用できないことが
1
つの問題です。UDFを作成または使用する場合(C
または C++
のプログラマの場合のみ)は、動的リンクを使用して
MySQL
を自分でコンパイルする必要があります。
glibc2
システムではなく、libc
ベースのシステムを使用している場合は、バイナリリリースでホスト名解決と
getpwnam()
に関連する問題が発生することが多いです(これは、glibc
が、-static
でコンパイルされている場合でも、外部ライブラリに依存してホスト名と
getpwent()
を解決することが原因です)。その場合、mysql_install_db
を実行したときに以下のエラーメッセージが表示されます。
Sorry, the host 'xxxx' could not be looked up
または、--user
オプションを指定して mysqld
を実行したときに、以下のエラーが表示されます。
getpwnam: No such file or directory
この問題は、以下のいずれかの方法で解決できます。
MySQL ソースディストリビューション(RPM
または tar.gz
ディストリビューション)を入手して、それをインストールする。
mysql_install_db --force
を実行する。この場合、mysql_install_db
の resolveip
テストは実行されません。この方法の弱点は、権限テーブルでホスト名を使用できないため、代わりに
IP
番号を使用しなくてはならないことです(localhost
の場合は除く)。--force
をサポートしていない旧バージョンの MySQL
リリースを使用している場合、エディタを使用して
mysql_install
の
resolveip
テストを削除する必要があります。
--user
を使用する代わりに
su
を指定して
mysqld
を起動する。
MySQL の Linux-Intel バイナリと RPM リリースは、最高の速度を実現するようにコンフィギャされています。当社は、常に、入手可能な最速の安定したコンパイラを使用するよう努めています。
MySQL の Perl サポートは、Perl 5.004_03 以降のバージョンを必要とします。
一部の Linux 2.2 バージョンでは、TCP/IP
を介して mysqld
サーバに多数の接続を行うと、Resource
temporarily unavailable
というエラーが発生することがあります。
問題は、Linux では、TCP/IP
ソケットを閉じてから、そのソケットが実際にシステムによって解放されるまでの間に遅延があることです。限られた数の
TCP/IP
スロット用のスペースしかないので、TCP/IP
を介して test-connect
ベンチマークを実行している場合など、短時間に多すぎる数の新しい
TCP/IP
接続を実行すると、上記のエラーが発生します。
さまざまなLinux メーリングリストにこの問題を何回かメールで送りましたが、適切な解決法はいまだに得られていません。
この問題の '修正方法'
として唯一知られているのは、データベースサーバとクライアントを同じマシン上で実行している場合に、クライアントで永続的な接続を使用するかソケットファイルを使用することです、将来、Linux
2.4
カーネルでこの問題が修正されることが望まれます。
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.