2.3.5.7 Windows のサービスとして MySQL を起動する

Windows で MySQL を実行する場合、Windows の起動および停止時に MySQL が自動的に起動および停止するように、Windows サービスとしてインストールすることが推奨されています。MySQL Server をサービスとしてインストールすると、NET コマンドを使用してコマンド行から、あるいはグラフィカル Services ユーティリティーで管理することもできます。一般に、MySQL を Windows サービスとしてインストールするときは、管理者権限のあるアカウントを使ってログインするようにしてください。

注記

MySQL Notifier GUI を使用して、MySQL サービスのステータスをモニターすることも可能です。

Services ユーティリティー (Windows サービスコントロールマネージャー) は、Windows のコントロールパネル (Windows 2000、XP、Vista、および Server 2003 では 管理ツールの下) にあります。競合を避けるために、サーバーのインストールまたはコマンド行からの削除操作の際には、Services ユーティリティーを閉じることを推奨します。

サービスのインストール

現在サーバーを実行中の場合は、MySQL を Windows のサービスとしてインストールする前に次のコマンドを使用して停止してください。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin"
          -u root shutdown
注記

MySQL の root ユーザーアカウントにパスワードが設定されている場合は、mysqladmin-p オプションを使って起動し、要求されたらパスワードを入力する必要があります。

このコマンドは MySQL 管理ユーティリティー mysqladmin を起動してサーバーに接続し、サーバーにシャットダウンを命令します。そのコマンドは MySQL root ユーザーとして接続します。これは MySQL の許可システムのデフォルトの管理アカウントです。

注記

MySQL 許可システム内のユーザーは、Windows のログインユーザーとは完全に独立しています。

サーバーをこのコマンドを使用してサービスとしてインストールします。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --install

サービスのインストールコマンドはサーバーは起動しません。それについてはこのセクションで後述します。

MySQL プログラムの起動を簡単にするために、MySQL の bin ディレクトリのパス名を Windows システムの PATH 環境変数に追加できます。

  • Windows デスクトップで、「マイコンピュータ」 アイコンを右クリックして「プロパティ」を選択します。

  • 次に、表示された「システムのプロパティ」メニューから「詳細設定」タブを選択し、「環境変数」ボタンをクリックします。

  • 「システム環境変数」で、「Path」を選択し、次に「編集」ボタンをクリックします。「システム変数の編集」のダイアログが表示されます。

  • 「変数値」と示されたスペースに表示されたテキストの最後にカーソルを持って行きます。(「End」キーを使用して、カーソルが確実にそのスペースのテキストのいちばん後ろにあるようにします)。次に、MySQL bin ディレクトリの完全なパス名を入力します (C:\Program Files\MySQL\MySQL Server 5.6\bin など)。このフィールドにあるほかの値とこのパスを区切るために、セミコロンが必要です。開いているダイアログがすべて閉じるまで、「OK」をクリックしてこのダイアログとその他のダイアログを順番に閉じます。この段階で、システムのどのディレクトリからでも、DOS プロンプトにパスを指定せずに MySQL の実行プログラム名を入力して、すべての MySQL 実行プログラムを呼び出すことができます。これにはサーバー、mysql クライアント、および mysqladminmysqldump などのすべての MySQL コマンド行ユーティリティーが含まれています。

    同じマシンで複数の MySQL サーバーを動作させている場合には、MySQL bin ディレクトリを Windows PATH に追加しないでください。

警告

システムの PATH を手動で編集する際には最大限の注意が必要です。既存の PATH の値の一部でも間違って削除したり変更したりすると、誤動作を引き起こしたりシステムが使用できなくなったりする場合があります。

サービスをインストールする際に、次の追加引数を使用できます。

  • --install オプションの直後にサービス名を指定できます。デフォルトのサービス名は MySQL です。

  • サービス名を指定すると、そのあとに 1 つのオプションを指定できます。規則では、--defaults-file=file_name でオプションファイル名を指定し、サーバーが起動時にそこからオプションを読み取ります。

    --defaults-file 以外に 1 つのオプションを使用することは可能ですが、お勧めできません。--defaults-file を使用すると、指名したオプションファイルに複数のスタートアップオプションを指定できるので、より柔軟です。

  • サービス名のあとに --local-service オプションも指定できます。これにより、システム権限の制限付き LocalService Windows アカウントを使用してサーバーを起動できます。このアカウントは Windows XP またはそれ以降でのみ利用できます。--defaults-file および --local-service の両方がサービス名のあとに指定される場合、どのような順序でもかまいません。

MySQL Server を Windows のサービスとしてインストールした場合、サーバーが使用するサービス名およびオプションファイルは次のルールで決められます。

  • サービスインストールのコマンドで、--install オプションのあとにサービス名を指名しないかデフォルトのサービス名 (MySQL) を指定した場合、サーバーは MySQL のサービス名を使用し、標準のオプションファイルの [mysqld] グループのオプションを読み取ります。

  • サービスインストールのコマンドで MySQL 以外のサービス名を --install オプションのあとに指定した場合、サーバーはそのサービス名を使用します。標準のオプションファイルの [mysqld] グループと、サービスと名前が同じグループからオプションを読み取ります。これにより、[mysqld] グループをすべての MySQL サービスで使用すべきオプション用に、サービス名の付いたオプショングループをそのサービス名でインストールされたサーバー用に使用できます。

  • サービスインストールのコマンドでサービス名のあとに --defaults-file オプションを指定した場合、サーバーは前の項目で説明したのと同じ方法でオプションを読み取りますが、名前付きのファイルからのみオプションを読み取り、標準のオプションファイルは無視します。

さらに複雑な例として、次のコマンドがあります。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
          --install MySQL --defaults-file=C:\my-opts.cnf

ここでは、--install オプションのあとにデフォルトのサービス名 (MySQL) が指定されています。--defaults-file オプションが指定されていなければ、このコマンドによりサーバーは標準のオプションファイルから [mysqld] グループを読み取ります。しかし、--defaults-file オプションが指定されているので、サーバーは [mysqld] オプショングループのオプションを、指名されたファイルのみから読み取ります。

注記

Windows では、サーバーが --defaults-file および --install オプションで起動される場合、--install が最初でなければなりません。そうでないと、mysqld.exe は MySQL Server を起動しようとします。

MySQL サービスを実行する前に、Windows の Services ユーティリティーで Start パラメータとしてオプションを指定することもできます。

サービスの開始

MySQL サーバーをサービスとしてインストールすると、Windows が起動されるたびにサービスが自動的に起動されます。サービスは、Services ユーティリティーから、あるいは NET START MySQL コマンドを使用してすぐに実行することもできます。NET コマンドは大文字と小文字を区別しません。

サービスとして起動する場合、mysqld はコンソールウィンドウにアクセスできないので、メッセージは表示されません。mysqld が起動しない場合、サーバーがエラーログにその問題の原因を知らせるメッセージを書き込んでいないか確認します。エラーログは MySQL データディレクトリ (C:\Program Files\MySQL\MySQL Server 5.6\data など) にあります。.err のサフィクスが付いたファイルです。

MySQL Server をサービスとしてインストールした場合、サービスを実行しているときに Windows がシャットダウンすると Windows が自動的にサービスを停止します。サーバーは、Services ユーティリティー、NET STOP MySQL コマンド、あるいは mysqladmin shutdown コマンドを使用して手動で停止することもできます。

サービスがブートプロセスで自動的に実行されないように、サーバーをマニュアルサービスとしてインストールすることもできます。これには --install オプションではなく --install-manual オプションを使用します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --install-manual
サービスの削除

サービスとしてインストールしたサーバーを削除するには、起動中の場合にはまず NET STOP MySQL を実行して停止します。次に --remove オプションを使用して削除します。

C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --remove

mysqld をサービスとして実行していない場合は、コマンド行で起動できます。その手順は、セクション2.3.5.5「Windows のコマンド行からの MySQL の起動」 を参照してください。

インストール中に問題が生じた場合は、セクション2.3.6「Microsoft Windows MySQL Server インストールのトラブルシューティング」 を参照してください。


User Comments
  Posted by Paolo Lancelli on October 24, 2007
In case you receive "The system cannot find the file specified", remember that you have to install the service with the absolute path, in my case "C:\mysql\bin\mysqld --install". I added the \bin to the windows path, and I was installing the service only with "mysqld --install".
  Posted by Junaid Nazir on December 29, 2007
As mentioned earlier by another user, I fell into the trap of adding MySQL to start as a service via a command like

C:\> mysqld --install

The service is reported as being installed successfully, however, under the Services panel it shows the executable path as 'C:\mysqld' when in fact it is located under 'C:\mysql\bin'. I was working under the assumption that the mysql\bin directory had been added to the system PATH variable, but really you need to use absolute file paths when installing services. In my case, I used;

C:\> C:\mysql\bin\mysqld --install MySQL --defaults-file=C:\mysql\my.ini

This starts the service automatically with Windows bootup, and will load the my.ini configuration file which you have to place within the mysql directory. For the first time however, you will need to start the mysql service manually, since the earlier command makes mysql start and end with windows shutdowns and restarts.

net start mysql
  Posted by bob eff on June 8, 2008
If you have problems installing the service on Windows Vista, just run the normal install and add the service manually with the following command:

use the sc create command in a dos window to add the service:

sc create MySQL start= auto DisplayName= MySQL binPath= c:\program files\mysql\mysql server 5.1\bin\mysqld.exe

then if you need to alter any parameters, use the administrative tools/services utility
  Posted by Baruch Atta on January 14, 2010
Another "got-ya"... Make sure your my.ini file is in your MySQL directory, and the variables are pointing to the correct directories.
  Posted by Rich Wingerter on July 5, 2011
In order to overcome the "The system cannot find the file specified" message, I had to use the short 8dot3 names because my command program would not take the long names in quotes. Since I have mysql installed under EasyPHP on the D: drive, I had to use:

D:\progra~2\easyph~1.0\mysql\bin\mysqld --install

to get to mysqld in

D:\Program Files (x86)\EasyPHP-5.3.6.0\mysql\bin

You can get the short names with the directory command:

DIR /X

  Posted by Dario Fumagalli on October 9, 2013
Beware, by reading these instructions it sounds like a name for the service is optional.
It's absolutely not, if you don't use a service name you get a cryptic:

Failed to install the service (Couldn't create service)

error message, that points to all but to this simple issue of not indicating a name.
  Posted by gur lavie on December 5, 2013
If you get the message "Can't install/remove the service"

Just make sure you run the CMD windows as Administrator
Sign Up Login You must be logged in to post a comment.