mysqld_safe は Unix や NetWare などの環境で、mysqld サーバ ( デーモン) を起動するときに推奨しているコマンドです。mysqld_safe は、エラー発生時にサーバを再起動したり、ランタイム情報をログ ファイルに記録するなどのセキュリティ機能が加わります。 NetWare に特化した動作に関しては、このセクションの後方で説明します。
mysqld_safe
は、mysqld
という名前の実行可能ファイルを立ち上げます。デフォルトの動作を書き換えて、特定のサーバを指定するには、mysqld_safe
で --mysqld
または
--mysqld-version
のオプションを指定します。--ledir
オプションで、mysqld_safe
がサーバとして使用するディレクトリを指定できます。
mysqld_safe でのオプションは、mysqld のオプションと同じです。詳細は 項4.2.2. 「コマンド オプション」 を参照してください。.
コマンドラインから mysqld_safe
に指定したオプションのすべては、mysqld
に渡ります。mysqld_safe
へ特定のオプションを使用し、それを
mysqld
がサポートしない場合は、コマンドラインでの指定はしないでください。その代わりに、オプション
ファイルの [mysqld_safe]
グループでそれらをリストしてください。詳細は、項3.3.2. 「オプションファイルの使用」
を参照してください。
mysqld_safe は、オプション
ファイルの [mysqld]
、
[server]
、
[mysqld_safe]
のセクションからすべてのオプションを読み取ります。下位互換の場合でも、
[safe_mysqld]
セクションから読みますが、MySQL
5.1
をインストールするときに、該当するセクションを
[mysqld_safe]
へとリネームする必要があります。
mysqld_safe は次のオプションをサポートします。
ヘルプメッセージを表示し、終了。
NetWare 専用。NetWare では、mysqld_safe がスクリーン表示を行う。mysqld_safe NLM をアンロード (シャットダウン) するときは、デフォルトでスクリーンが消えることはなく、代わりにユーザ入力をプロンプトする。
*<NLM has terminated; Press any key to close the screen>*
NetWare
で、自動的にスクリーンを閉じるようにするには、mysqld_safe
で --autoclose
オプションを使用する。
基準パス。MySQLをインストールしているディレクトリを指す。
mysqld で作成するコア ファイルのサイズ。このオプション値は ulimit -c へ渡る。
データ ディレクトリへのパス。
通常のオプションファイルのほかに、読み込むオプション ファイルの名前。このオプションを使用するときは、これをコマンドラインで最初のオプションにする。このファイルが存在しない、またはアクセスできないという場合には、サーバがエラーを出して終了する。
通常のオプション ファイルの代わりに読み込むオプション ファイルの名前。このオプションを使用するときには、これをコマンドラインで最初のオプションにする。
mysqld_safe でサーバをみつけることができない場合、このオプションでサーバがあるディレクトリへのパス探す。.
任意のファイルにエラー ログを書き込む。項4.11.2. 「エラー ログ」 を参照のこと。
ledir
ディレクトリにある
(起動する) サーバ
プログラムの名前。このオプションは、MySQL
バイナリ配布を使用するが、バイナリ配布外にデータ
ディレクトリがある場合に、このオプションを使用する。mysqld_safe
でサーバをみつけることができない場合は、
--ledir
オプションを使用して、サーバ
ディレクトリのパスを探す。
--mysqld
オプションと類似のオプション。ここではサーバのプログラム名
(mysqld)
のサフィックスだけを指定する。ベース名を
mysqld
とする。たとえば、--mysqld-version=debug
を使用すると、mysqld_safe は
ledir
ディレクトリの
mysqld-debug
プログラムを起動する。--mysqld-version
の引数が空白の場合、mysqld_safeでは、ledir
ディレクトリの mysqld
を使用する。
nice
プログラムは任意の値に対してサーバのスケジュール優先順位を設定する。
オプション ファイルを読まない。このオプションを使用するときは、コマンドラインの最初に置く。
mysqld
が開くファイル数。オプション値は
ulimit -n
へ渡る。ノート:正確に機能させるには、mysqld_safe
を root
として立ち上げる。
ID ファイルのパス名
TCP/IP
接続時に使用するポート番号。ポート番号は
1024 以上にする。サーバが
root
システム
ユーザで立ち上がっている場合はこの限りではない。
サーバがローカル接続に使用するUnix のソケット ファイル。
TZ
タイム
ゾーンの環境変数を任意のオプション値に設定する。正規
(リーガル) のタイム
ゾーン形式に関しては、オペレーティング
システムのマニュアルを参照のこと。
mysqld
サーバを、user_name
(名前)、または user_id
(数字のユーザ ID)
を保有するユーザとして実行する。ここでの
「ユーザ」
は、権限テーブルにリストしている MySQL
ユーザではなく、システム ログイン
アカウントを指す)。
mysqld_safe を実行するときに、
--defaults-file
または
--defaults-extra-option
のオプションをオプション
ファイルとするときに、このオプションをコマンドラインの最初に置く。そうしないと、オプション
ファイルは使用できません。たとえば、次のコマンドはオプション
ファイルとして使用することはできません。
mysql> mysqld_safe --port=port_num
--defaults-file=file_name
代わりに、次のコマンドを使用します。
mysql> mysqld_safe --defaults-file=file_name
--port=port_num
mysqld_safe スクリプトを書くと、通常はソースまたは MyQL のバイナリ配布からインストールしたサーバを立ち上げることができ、これは、このようなタイプの配布を通常とは異なる場所にインストールする場合も同様です。(項2.1.5. 「インストールのレイアウト」 を参照のこと。) mysqld_safe では、次の条件が true である必要があります。
サーバとデータベースは作業中のディレクトリと関連する。つまり
mysqld_safe
から呼び出したディレクトリであること。バイナリ配布の場合、mysqld_safe
は、bin
と
data
のディレクトリにあり、ソース配布の場合は、libexec
と var
のディレクトリにある。この条件が一致していると、MySQL
をインストールしたディレクトリから
mysqld_safe
を実行できる。たとえば、バイナリ配布の場合には、/usr/local/mysql
である。
サーバとデータベースが作業中のディレクトリと関連しない場合は、mysqld_safe
は絶対パスで探そうとする。通常は、/usr/local/libexec
と /usr/local/var
に位置する。実際の場所は、構築したとき設定した値で決定する。MySQL
を設定時に指定の場所へインストールしていれば、正確に動作する。
mysqld_safe は作業中のディレクトリに関連しているサーバとデータベースを探すため、基本的には MySQL のバイナリ配布をどこにでもインストールできますが、mysqld_safe の実行は、MySQL をインストールしたディレクトリである必要があります。
shell>cd
shell>mysql_installation_directory
bin/mysqld_safe &
MySQL
をインストールしたディレクトリから呼び出しても、mysqld_safe
で失敗する場合、--ledir
または
--datadir
オプションで指定して、システム内のサーバとデータベースがあるディレクトリを指してください。
通常、mysqld_safe
のスクリプトは編集してはいけません。その必要がある場合には、mysqld_safe
を my.cnf
オプション
ファイルの [mysqld_safe]
セクションにあるコマンドライン
オプションを使用します。稀なケースでは、サーバを正確に起動するために、mysqld_safe
を編集する必要があります。これを行う場合、mysqld_safe
を修正しても、MySQL
をアップグレードするときに、上書きされてしまうため、その修正バージョンのコピーを再インストールように控えておくことをお勧めします。
NetWare では、mysqld_safe が NetWare Loadable Module (NLM) であり、オリジナルの Unix シェル スクリプトからポートしています。この場合には、サーバは次のような経緯で立ち上がります。
数々のシステムを実行し、オプション チェックを行う。
MyISAM
テーブルのチェックをする。
MySQL サーバにスクリーンのプレゼンスを規定する。
mysqld を立ち上げ、それを監視し、再起動するときに、エラーで終了するかどうかをみる。
データ ディレクトリに
mysqld から
へエラー メッセージを送る。
host_name
.err
mysqld_safe
のスクリーン出力をデータ
ディレクトリの
ファイルへ送る。
host_name
.safe