一般的には、mysqld サーバーは次のいずれかの方法で起動します。
直接 mysqld を呼び出します。これはどのプラットフォームでも機能します。
mysqld_safe を実行します。これは、mysqld の適切なオプションを判断してそれらのオプションで実行します。このスクリプトは Unix および Unix 類似システムで使用されます。セクション4.3.2「mysqld_safe — MySQL サーバー起動スクリプト」を参照してください。
mysql.server を呼び出します。このスクリプトは、主に System V スタイルの実行ディレクトリ (すなわち、
/etc/init.d
および実行レベル固有のディレクトリ) を使用するシステムで、システムの起動時およびシャットダウン時に使用されます。通常、mysql
という名前でインストールされます。mysql.server スクリプトは mysqld_safe を実行してサーバーを起動します。セクション4.3.3「mysql.server — MySQL サーバー起動スクリプト」を参照してください。OS X では、システム起動時の MySQL の自動起動を有効にする別個の MySQL Startup Item パッケージをインストールします。Startup Item は mysql.server を実行することでサーバーを起動します。詳細はセクション2.4.4「MySQL 起動アイテムのインストール」を参照してください。MySQL Preference Pane でも、System Preferences を介して MySQL の起動と停止を制御できます。セクション2.4.5「MySQL Preference Pane のインストールと使用」を参照してください。
Solaris/OpenSolaris の SMF (service management framework) システムを使用して、MySQL の起動を開始および管理します。詳細については、セクション2.7.2「IPS を使用して MySQL を OpenSolaris にインストールする」を参照してください。
mysqld_safe スクリプトおよび mysql.server スクリプト、Solaris/OpenSolaris SMF、および OS X Startup Item (または MySQL Preference Pane) を使用して、サーバーを手動で、あるいはシステムの起動時に自動的に起動できます。mysql.server および Startup Item は、サーバーの停止にも使用できます。
mysql.server スクリプトを使用してサーバーを手動で起動または停止するには、サーバーを start
引数または stop
引数を使用して呼び出します。
shell> mysql.server start
shell> mysql.server stop
mysql.server は、サーバーを起動する前に場所を MySQL インストールディレクトリに変更し、次に mysqld_safe を実行します。サーバーを特定のユーザーとして起動するには、このセクションで後述するように、適切な user
オプションを /etc/my.cnf
オプションファイルの [mysqld]
グループに追加します。(バイナリ配布の MySQL を標準と異なる場所にインストールした場合には mysql.server の編集が必要になる場合があります。mysqld_safe を実行する前に場所を適切なディレクトリに変更するように、それを修正します。これを行うと、将来 MySQL をアップグレードすると変更したバージョンの mysql.server が上書きされる場合がありますので、編集したバージョンを再インストールできるようにコピーを取っておくとよいでしょう。)
mysql.server stop は、サーバーに信号を送って停止します。mysqladmin shutdown を実行してサーバーを手動で停止することもできます。
サーバー上の MySQL を自動的に起動および停止するには、起動および停止のコマンドを /etc/rc*
ファイルの適切な場所に加える必要があります。
Linux サーバーの RPM パッケージ (MySQL-server-
) またはネイティブの Linux パッケージインストールを使用する場合は、mysql.server スクリプトは VERSION
.rpm/etc/init.d
のディレクトリに mysql
という名前でインストールされる場合があります。Linux RPM パッケージに関する詳細は、セクション2.5.5「RPM パッケージを使用して MySQL を Linux にインストールする」を参照してください。
ベンダーによっては、起動スクリプトを mysqld のような別名でインストールする RPM パッケージを提供している場合もあります。
MySQL をソース配布から、あるいは mysql.server を自動的にインストールしないバイナリの配布形式を使用してインストールする場合、それを手動でインストールできます。そのスクリプトは、MySQL インストールディレクトリの support-files
ディレクトリあるいは MySQL のソースツリーにあります。
mysql.server を手動でインストールするには、それを /etc/init.d
ディレクトリに mysql の名前でコピーし、次にそれを実行ファイルにします。それには、mysql.server のある適切なディレクトリに場所を変更して、次のコマンドを実行します。
shell> cp mysql.server /etc/init.d/mysql
shell> chmod +x /etc/init.d/mysql
古い Red Hat システムは /etc/init.d
ではなく /etc/rc.d/init.d
ディレクトリを使用しています。前述のコマンドを適宜調整します。または、最初に /etc/init.d
を /etc/rc.d/init.d
を指すシンボリックリンクとして作成します。
shell> cd /etc
shell> ln -s rc.d/init.d .
スクリプトをインストールしたあと、それを有効にしてシステムの起動時に実行するために必要なコマンドは、使用しているオペレーティングシステムによって異なります。Linux では、chkconfig を使用します。
shell> chkconfig --add mysql
一部の Linux システムでは、mysql スクリプトを完全に有効にするには次のコマンドも必要になる場合があります。
shell> chkconfig --level 345 mysql on
FreeBSD では、起動スクリプトは通常 /usr/local/etc/rc.d/
にあります。rc(8)
のマニュアルページでは、このディレクトリのスクリプトはそれらのベース名が *.sh
シェルファイル名のパターンに一致したときのみ実行できると記載されています。そのディレクトリの、その他のファイルあるいおよびディレクトリは警告なしで無視されます。つまり FreeBSD では、自動起動を有効にするには mysql.server
スクリプトを /usr/local/etc/rc.d/mysql.server.sh
としてインストールするべきです。
前述の設定の代案として、オペレーティングシステムの中には /etc/rc.local
あるいは /etc/init.d/boot.local
を使用して起動時に追加のサービスを起動するものもあります。この方法で MySQL を起動するには、次のようなコマンドを適切な起動ファイルに追加します。
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
ほかのシステムの起動スクリプトのインストール方法についてはそのオペレーティングシステムのドキュメントをお読みください。
mysql.server のオプションを、グローバル /etc/my.cnf
ファイルに追加できます。一般的な /etc/my.cnf
ファイルは次のようになります。
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
The mysql.server スクリプトは、basedir
、datadir
、および pid-file
の各オプションをサポートしています。指定する場合は、コマンド行ではなくオプションファイルに配置する必要があります。mysql.server は、start
および stop
のみをコマンド行の引数としてサポートしています。
次の表は、サーバーおよび各起動スクリプトがオプションファイルから読み取るオプショングループを示しています。
表 2.12 MySQL 起動スクリプトとサポートされるサーバーオプショングループ
スクリプト | オプショングループ |
---|---|
mysqld |
[mysqld] 、[server] 、[mysqld-
|
mysqld_safe |
[mysqld] 、[server] 、[mysqld_safe]
|
mysql.server |
[mysqld] 、[mysql.server] 、[server]
|
[mysqld-
は、major_version
][mysqld-5.5]
および [mysqld-5.6]
のような名前のグループが、5.5.x、5.6.x、などのバージョンのサーバーによって読み取られることを意味します。この機能は、所定のリリースシリーズのサーバーによってのみ読み取られるオプションを指定するために使用できます。
下位互換性のため、mysql.server は[mysql_server]
グループも読み取り、mysqld_safe は[safe_mysqld]
グループも読み取ります。ただし、MySQL 5.6 を使用する場合は、代わりに [mysql.server]
および [mysqld_safe]
グループを使用するようにオプションファイルを更新するとよいでしょう。
MySQL 構成ファイルとその構造とコンテンツについては、セクション4.2.6「オプションファイルの使用」を参照してください。