Unix および Unix に似たシステム上の MySQL ディストリビューションには、mysqld_safe を使用して MySQL サーバーを起動する mysql.server というスクリプトが含まれています。 System V スタイルの実行ディレクトリを使用してシステムサービスの起動および停止を行う、Linux および Solaris などのシステムで使用できます。 また、macOS Startup Item for MySQL でも使用されます。
mysql.server は、MySQL ソースツリー内で使用されるスクリプト名です。 インストールされた名前が異なる場合があります (たとえば、mysqld や mysql)。 次の説明では、システムに応じて mysql.server という名前を調整します。
一部の Linux プラットフォームでは、RPM または Debian パッケージからの MySQL インストールに、MySQL サーバーの起動と停止を管理するための systemd サポートが含まれています。 これらのプラットフォームでは、mysql.server および mysqld_safe は不要なためインストールされません。 詳細は、セクション2.5.9「systemd を使用した MySQL Server の管理」を参照してください。
mysql.server スクリプトを使用してサーバーを手動で起動または停止するには、start
または stop
引数を指定してコマンドラインから起動します:
shell> mysql.server start
shell> mysql.server stop
mysql.server は、場所を MySQL インストールディレクトリに変更し、mysqld_safe を起動します。 特定のユーザーとしてサーバーを実行するには、このセクションで後述するように、グローバル/etc/my.cnf
オプションファイルの[mysqld]
グループに適切な user
オプションを追加します。 (非標準の場所に MySQL のバイナリ配布をインストールした場合は、mysql.server を編集する必要があります。 mysqld_safe を実行する前に場所を適切なディレクトリに変更するように、それを修正します。 これを行うと、将来 MySQL をアップグレードした場合に、変更されたバージョンの mysql.server が上書きされる可能性があります。再インストール可能な編集済バージョンのコピーを作成してください。)
mysql.server stop は、サーバーに信号を送って停止します。 mysqladmin shutdown を実行してサーバーを手動で停止することもできます。
サーバー上で MySQL を自動的に起動および停止するには、/etc/rc*
ファイル内の適切な場所に起動および停止コマンドを追加する必要があります:
Linux サーバー RPM パッケージ (
MySQL-server-
) またはネイティブ Linux パッケージインストールを使用する場合、mysql.server スクリプトはVERSION
.rpmmysqld
またはmysql
という名前で/etc/init.d
ディレクトリにインストールできます。 Linux RPM パッケージに関する詳細は、セクション2.5.4「Oracle の RPM パッケージを使用した Linux への MySQL のインストール」を参照してください。-
MySQL をソース配布からインストールする場合、または mysql.server を自動的にインストールしないバイナリ配布形式を使用する場合は、スクリプトを手動でインストールできます。 これは、MySQL インストールディレクトリの下の
support-files
ディレクトリまたは MySQL ソースツリーにあります。 mysql という名前の/etc/init.d
ディレクトリにスクリプトをコピーし、実行可能にします:shell> cp mysql.server /etc/init.d/mysql shell> chmod +x /etc/init.d/mysql
スクリプトをインストールしたあと、それを有効にしてシステムの起動時に実行するために必要なコマンドは、使用しているオペレーティングシステムによって異なります。 Linux では、chkconfig を使用します。
shell> chkconfig --add mysql
一部の Linux システムでは、mysql スクリプトを完全に有効にするには次のコマンドも必要になる場合があります。
shell> chkconfig --level 345 mysql on
FreeBSD では、起動スクリプトは通常
/usr/local/etc/rc.d/
にあります。mysql.server
スクリプトを/usr/local/etc/rc.d/mysql.server.sh
としてインストールし、自動起動を有効にします。rc(8)
のマニュアルページには、このディレクトリ内のスクリプトは、そのベース名が*.sh
Shell ファイル名パターンと一致する場合にのみ実行されると記載されています。 そのディレクトリの、その他のファイルあるいおよびディレクトリは警告なしで無視されます。-
前述の設定の代案として、オペレーティングシステムの中には
/etc/rc.local
あるいは/etc/init.d/boot.local
を使用して起動時に追加のサービスを起動するものもあります。 この方法を使用して MySQL を起動するには、次のようなコマンドを適切な起動ファイルに追加します:/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
ほかのシステムの起動スクリプトのインストール方法についてはそのオペレーティングシステムのドキュメントをお読みください。
mysql.server は、オプションファイルの [mysql.server]
セクションおよび [mysqld]
セクションからオプションを読み取ります。 下位互換性のために、[mysql_server]
セクションも読み取りますが、最新の状態にするには、このようなセクションの名前を[mysql.server]
に変更する必要があります。
mysql.server のオプションを、グローバル /etc/my.cnf
ファイルに追加できます。 一般的な my.cnf
ファイルは次のようになります:
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
mysql.server スクリプトでは、次のテーブルに示すオプションがサポートされます。 指定する場合は、コマンド行ではなくオプションファイルに配置する必要があります。mysql.server は、start
および stop
のみをコマンド行の引数としてサポートしています。
表 4.7 「mysql.server オプション - ファイルオプション」
オプション名 | 説明 | 型 |
---|---|---|
basedir |
MySQL インストールディレクトリへのパス | ディレクトリ名 |
datadir |
MySQL データディレクトリへのパス | ディレクトリ名 |
pid-file |
サーバーがプロセス ID を書き込むファイル | ファイル名 |
service-startup-timeout |
サーバーの起動を待機する時間 | Integer |
-
MySQL インストールディレクトリへのパス。
-
MySQL データディレクトリへのパス。
-
サーバーがプロセス ID を書き込むべきファイルのパス名。 サーバーは、別のディレクトリを指定する絶対パス名が指定されないかぎり、データディレクトリ内にファイルを作成します。
このオプションを指定しない場合、mysql.server ではデフォルト値の
が使用されます。 mysqld_safe に渡された PID ファイルの値は、host_name
.pid[mysqld_safe]
オプションのファイルグループで指定された値をオーバーライドします。 mysql.server は[mysqld]
オプションファイルグループを読み取りますが、[mysqld_safe]
グループは読み取りません。そのため、[mysqld_safe]
グループと[mysqld]
グループの両方に同じpid-file
設定を配置することで、mysqld_safe を mysql.server から起動したときと手動で起動したときと同じ値を取得できます。 -
service-startup-timeout=
seconds
サーバーの起動を確認するために待機する秒数。 サーバーがこの時間内に起動しない場合、mysql.server はエラーで終了します。 デフォルト値は 900 です。 0 の値は、起動をまったく待機しないことを意味します。 負の値はいつまでも (タイムアウトなしで) 待機することを意味します。