Windows NT ベースのシステムでは、MySQL サーバを Windows サービスとして実行します。単一の MySQL サービスのインストール、制御、および削除の手順については、項2.3.11. 「Windows のサービスとして MySQL を起動する」 を参照してください。
複数のサーバをサービスとしてインストールことも可能です。その場合、それぞれのサーバで異なるサービス名を使用します。また、サーバごとに一意である必要があるため、その他のパラメータにも注意が必要です。
次の手順は、CC:\mysql-5.0.19
および C:\mysql-5.1.15-beta
と、2 つの異なる MySQL
バージョンをインストールした
mysqld-nt
サーバを実行する場合を想定しています。たとえば、本稼働サーバとして
5.0.19
を実行しているときに、アップグレード前に
5.1.15-beta
をテストする場合などが該当します。
--install
または
--install-manual
オプションで MySQL
サービスをインストールする場合には、次の原則があります。
サービス名を指定しない場合、サーバは
MySQL
のデフォルト
サービス名を使用し、標準オプション
ファイルの [mysqld]
グループからオプションを読み取る。
--install
オプションの後でサービス名を指定すると、サーバは
[mysqld]
オプション
グループを無視し、サービスと同じ名前のグループからオプションを読み取る。サーバは、標準オプション
ファイルからオプションを読み取る。
サービス名の後で --defaults-file
オプションを指定すると、サーバは標準オプション設定ファイルを無視し、指定ファイルの
[mysqld]
グループからのみオプションを読み取る。
注意:MySQL 4.0.17
より前では、デフォルトのサービス名
((MySQL
))
でインストールしたサーバ、または
mysqld
というサービス名で明示的にインストールしたサーバでだけ、標準オプション設定ファイルの
[mysqld]
グループを読み込みが可能でした。4.0.17
以降は、インストールしたサービス名を問わず、標準オプション
ファイルを読み込めるすべてのサーバで
[mysqld]
グループを読みます。これにより、すべての
MySQL
サービスで使用する必要があるオプションに
[mysqld]
グループを使用でき、それぞれのサービスでインストールしたサーバで、そのサービス名を元に名付けたオプション
グループを使用できるようになりました。
この情報を元に、複数のサービスを様々な方法でセットアップできます。次の手順では、その例を示します。これらを試行するときは、シャットダウンし、既存の MySQL サービスを別の場所などに移動/削除してください。
アプローチ
1:オプションをすべてのサービスに対して
1 つの標準オプション
ファイルで指定し、それぞれのサーバに対して別々のサービス名を与えます。
MySQL 5.0.19 には、mysqld1
というサービス名を mysqld-nt
で、MySQL 5.1.15-beta では
mysqld2
というサービス名を
mysqld-nt
で、それぞれ実行するとした場合、 MySQL
5.0.19 には [mysqld1]
グループを、MySQL 5.1.15-beta には
[mysqld2]
グループを使用します。たとえば、C:\my.cnf
を次のようにセットアップします。
# options for mysqld1 service [mysqld1] basedir = C:/mysql-5.0.19 port = 3307 enable-named-pipe socket = mypipe1 # options for mysqld2 service [mysqld2] basedir = C:/mysql-5.1.15-beta port = 3308 enable-named-pipe socket = mypipe2
それぞれのサービスを次のようにインストールします。フル パスを使用して、Windows で正確な実行プログラムをそれぞれのサービスで登録することを確認してください。
C:\>C:\mysql-5.0.19\bin\mysqld-nt --install mysqld1
C:\>C:\mysql-5.1.15-beta\bin\mysqld-nt --install mysqld2
サービスを起動するには、サービス マネージャを使用するか、または該当するサービス名で NET START を使用します。
C:\>NET START mysqld1
C:\>NET START mysqld2
サービスを停止するには、サービス マネージャを使用するか、または該当するサービス名で NET STOP を使用します。
C:\>NET STOP mysqld1
C:\>NET STOP mysqld2
アプローチ
2:別々のファイルでそれぞれのサーバに対して、オプションを指定します。サービスをインストールするときは、--defaults-file
を使用して、それぞれのサーバでどのファイルを使用するかを指します。この場合、それぞれのファイルで
[mysqld]
を使用して、オプションをリストします。
このアプローチで、MySQL 5.0.19 の
mysqld-nt
に対するオプションを指定し、C:\my-opts1.cnf
というファイルを次のように作成します。
[mysqld] basedir = C:/mysql-5.0.19 port = 3307 enable-named-pipe socket = mypipe1
MySQL 5.1.15-beta の mysqld-nt
に対しては、C:\my-opts2.cnf
というファイルを次のように作成します。
[mysqld] basedir = C:/mysql-5.1.15-beta port = 3308 enable-named-pipe socket = mypipe2
サービスを次のようにインストールします。(それぞれのコマンドを一行で入力してください。)
C:\>C:\mysql-5.0.19\bin\mysqld-nt --install mysqld1
--defaults-file=C:\my-opts1.cnf
C:\>C:\mysql-5.1.15-beta\bin\mysqld-nt --install mysqld2
--defaults-file=C:\my-opts2.cnf
MySQL
サーバをサービスとしてインストールするには、--defaults-file
オプションを使用します。サービス名でそのオプションを優先化します。
サービスをインストール後、それぞれを前述の例示と同じ方法で、起動と停止を行います。
複数のサービスを削除するには、mysqld
--remove をそれぞれに使用し、後続の
--remove
オプションでサービス名を指定します。デフォルトのサービス名
(MySQL
)
を使用している場合には、この指定は省略可能です。