MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

4.3.2 mysqld_safe — MySQL サーバー起動スクリプト

Unix で mysqld サーバーを起動するには、mysqld_safe をお薦めします。mysqld_safe では、エラー発生時のサーバーの再起動やエラーログへの実行時情報のロギングなど、いくつかの安全機能が追加されています。 エラーのロギングについては、このセクションで後ほど説明します。

注記

一部の Linux プラットフォームでは、RPM または Debian パッケージからの MySQL インストールに、MySQL サーバーの起動と停止を管理するための systemd サポートが含まれています。 これらのプラットフォームでは、mysqld_safe は不要であるためインストールされません。 詳細は、セクション2.5.9「systemd を使用した MySQL Server の管理」を参照してください。

mysqld_safe は、mysqld という名前の実行可能ファイルを起動しようとします。 デフォルトの動作をオーバーライドして、起動するサーバーの名前を明示的に指定するには、mysqld_safe--mysqld オプションまたは --mysqld-version オプションを指定します。 --ledir オプションを使用して、mysqld_safe がサーバーを検索するディレクトリを指定することもできます。

mysqld_safe のオプションの多くは、mysqld のオプションと同じです。 セクション5.1.7「サーバーコマンドオプション」を参照してください。

mysqld_safe が理解できないオプションは、コマンド行で指定された場合は mysqld に渡されますが、オプションファイルの [mysqld_safe] グループに指定された場合は無視されます。 セクション4.2.2.2「オプションファイルの使用」を参照してください。

mysqld_safe は、オプションファイルの [mysqld][server][mysqld_safe] の各セクションからすべてのオプションを読み取ります。 たとえば、次のような[mysqld]セクションを指定すると、mysqld_safe--log-error オプションを検索して使用します:

[mysqld]
log-error=error.log

下位互換性のために、mysqld_safe[safe_mysqld]セクションも読み取りますが、このようなセクションの名前を[mysqld_safe]に変更する必要があります。

mysqld_safe では、次のテーブルに示すように、コマンドラインおよびオプションファイルでオプションを使用できます。 MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.2.2「オプションファイルの使用」を参照してください。

表 4.6 「mysqld_safe オプション」

オプション名 説明
--basedir MySQL インストールディレクトリへのパス
--core-file-size mysqld が作成できるべきコアファイルのサイズ
--datadir データディレクトリへのパス
--defaults-extra-file 通常のオプションファイルに加えて、名前付きオプションファイルを読み取ります
--defaults-file 指名されたオプションファイルのみを読み取る
--help ヘルプメッセージを表示して終了
--ledir サーバーが置かれているディレクトリへのパス
--log-error 指定されたファイルにエラーログを書き込み
--malloc-lib mysqld で使用する代替 malloc ライブラリ
--mysqld 起動するサーバープログラム名 (ledir ディレクトリの)
--mysqld-safe-log-timestamps ロギングのタイムスタンプ書式
--mysqld-version サーバープログラム名のサフィクス
--nice サーバーのスケジュール設定の優先順位を設定するために nice プログラムを使用
--no-defaults オプションファイルを読み取らない
--open-files-limit mysqld が開くことができるファイル数
--pid-file サーバープロセス ID ファイルのパス名
--plugin-dir プラグインがインストールされているディレクトリ
--port TCP/IP 接続を待機するポート番号
--skip-kill-mysqld 迷子の mysqld プロセスの kill を試行しない
--skip-syslog syslog にエラーメッセージを書き込まず、エラーログファイルを使用
--socket Unix ソケット接続を待機するソケットファイル
--syslog syslog にエラーメッセージを書き込み
--syslog-tag syslog に書き込まれるメッセージのタグサフィクス
--timezone TZ タイムゾーン環境変数を指定された値に設定
--user mysqld を、名前が user_name または数値のユーザー ID が user_id であるユーザーとして実行

--defaults-file または --defaults-extra-file オプションを指定して mysqld_safe を実行してオプションファイルに名前を付ける場合、オプションはコマンドラインで指定された最初のオプションである必要があります。そうでない場合、オプションファイルは使用されません。 たとえば、次のコマンドは指定されたオプションファイルを使用しません:

mysql> mysqld_safe --port=port_num --defaults-file=file_name

代わりに、次のコマンドを使用します。

mysql> mysqld_safe --defaults-file=file_name --port=port_num

MySQL のソースまたはバイナリ配布は通常、サーバーを若干異なる場所にインストールしますが、mysqld_safe スクリプトは、どちらからインストールしたサーバーでも正常に立ち上げることができるように作成されています。 (セクション2.1.5「インストールのレイアウト」を参照してください。) mysqld_safe は、次の条件のいずれかが満たされていることを想定しています。

mysqld_safe はサーバーおよびデータベースを作業ディレクトリから相対的に検索しようとするため、mysqld_safe を MySQL インストールディレクトリから起動するかぎり、MySQL のバイナリ配布は任意の場所にインストールできます。

shell> cd mysql_installation_directory
shell> bin/mysqld_safe &

mysqld_safe を MySQL インストールディレクトリから呼び出しても失敗する場合は、--ledir オプションおよび --datadir オプションを指定して、システムのサーバーとデータベースがあるディレクトリを指定します。

mysqld_safe は、sleep および date システムユーティリティを使用して、起動を試行した回数を秒単位で判別しようとします。 これらのユーティリティが存在し、試行された起動数/秒が 5 より大きい場合、mysqld_safe は 1 フル秒待機してから再起動します。 これは、連続して失敗する場合に過度に CPU を使用することを防ぐためのものです。 (Bug #11761530、Bug #54035)

mysqld_safe を使用して mysqld を起動する場合、mysqld_safe は自身と mysqld からのエラー (および通知) メッセージが同じ出力先に送信されるよう手配します。

これらのメッセージの出力先を制御するための mysqld_safe オプションがいくつかあります。

これらのオプションが指定されていない場合は、デフォルトは --skip-syslog です。

mysqld_safe がメッセージを書き込む場合、通知はロギングの出力先 (syslog またはエラーログファイル) および stdout に送られます。 エラーはロギングの出力先と stderr に送られます。

注記

mysqld_safe からの mysqld ロギングの制御は非推奨になりました。 かわりに、サーバー固有の syslog サポートを使用してください。 詳細は、セクション5.4.2.8「システムログへのエラーロギング」を参照してください。