Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


2.10.1.2 MySQL を自動的に起動および停止する

一般的には、mysqld サーバーは次のいずれかの方法で起動します。

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-VERSION.rpm) またはネイティブの Linux パッケージインストールを使用する場合は、mysql.server スクリプトは /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 スクリプトは、basedirdatadir、および pid-file の各オプションをサポートしています。指定する場合は、コマンド行ではなくオプションファイルに配置する必要がありますmysql.server は、start および stop のみをコマンド行の引数としてサポートしています。

次の表は、サーバーおよび各起動スクリプトがオプションファイルから読み取るオプショングループを示しています。

表 2.12 MySQL 起動スクリプトとサポートされるサーバーオプショングループ

スクリプト オプショングループ
mysqld [mysqld][server][mysqld-major_version]
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「オプションファイルの使用」を参照してください。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by dennis pickering on March 4, 2011
On Fedora 13, 3 yum installs were needed. The first two were not sufficient to load the normal init.d startup script. Third one did.

yum install mysql
yum install php-mysql
yum install mysql-server

Also. chkconfig is ok. ntsysv as a more interactive and visual.

  Posted by Morten Bjoernsvik on August 16, 2011
(V5.5.15 build from sources opensuse11.4)

I think the support-files/mysql.server needs to be rewritten. It is way to complex for just managing mysqld_safe

The documentation urge You to install as a non root user, but this script does not take --user into account, Even though you add user='mysql_test' to the my.conf file.

In order to start I need the following command:
/opt/mysql/bin/mysqld_safe --user='mysql_test' --datadir='/home/mysqldata' --basedir=/opt/mysql

I have to use
/etc/init.d/mysql.server start --user='mysql_test'
to get it to work. But it will not autostart

I just added a $user variable to the script and pushed it into the $mysql_safe command. then it works.

Sign Up Login You must be logged in to post a comment.