MySQL 8.0 リファレンスマニュアル


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

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

Services ユーティリティ (Windows Service Control Manager) は、Windows コントロールパネルにあります。 競合を避けるために、サーバーのインストールまたはコマンド行からの削除操作の際には、Services ユーティリティーを閉じることを推奨します。

サービスのインストール

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

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

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

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

注記

MySQL 権限付与システムのユーザーは、Windows のオペレーティングシステムユーザーから完全に独立しています。

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

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

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

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

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

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

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

  • 「変数値」と示されたスペースに表示されたテキストの最後にカーソルを持って行きます。 (「End」キーを使用して、カーソルが確実にそのスペースのテキストのいちばん後ろにあるようにします)。 次に、MySQL bin ディレクトリの完全なパス名を入力します (C:\Program Files\MySQL\MySQL Server 8.0\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 アカウントを使用してサーバーを起動できます。 --defaults-file および --local-service の両方がサービス名のあとに指定される場合、どのような順序でもかまいません。

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

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

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

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

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

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\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 サーバーを起動しようとします。

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

最後に、MySQL サービスを開始する前に、サービスを実行するオペレーティングシステムユーザーのユーザー変数 %TEMP% および %TMP% (設定されている場合は %TMPDIR%) が、ユーザーが書込みアクセス権を持つフォルダを指していることを確認します。 MySQL サービスを実行するためのデフォルトユーザーは LocalSystem で、%TEMP% および %TMP% のデフォルト値は C:\Windows\Temp で、LocalSystem ディレクトリにはデフォルトで書込みアクセス権があります。 ただし、そのデフォルト設定に変更があった場合 (たとえば、サービスを実行するユーザーや前述のユーザー変数への変更、または --tmpdir オプションを使用して一時ディレクトリを別の場所に配置した場合)、一時ディレクトリへの書込みアクセス権が適切なユーザーに付与されていないため、MySQL サービスの実行に失敗する可能性があります。

サービスの開始

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

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

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

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

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

サービスとしてインストールされているサーバーを削除するには、まず SC STOP mysqld_service_name または NET STOP mysqld_service_name を実行して停止します (実行中の場合)。 次に、SC DELETE mysqld_service_name を使用して削除します:

C:\> SC DELETE mysql

または、mysqld --remove オプションを使用してサービスを削除します。

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

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

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

Windows サービスの停止または削除の詳細は、セクション5.8.2.2「Windows サービスとして複数の MySQL インスタンスの起動」 を参照してください。


関連キーワード:  インストール, サービス, サーバー, 起動, コマンド, mysqld, Server, 実行, ユーザー, install