【MySQL】【Windows】 MySQL を複数インスタンスで起動させる ~Windows編~


■ 手順

[1] MySQLのインストール場所(デフォルトなら「C:\ProgramData\MySQL\MySQL Server X.X」)
    にある「my.ini」をコピー&ペーストし、任意のファイル名(例「my2.ini」)にする

[2] [1]のファイル(「my2.ini」)を以下の「MySQL設定ファイルの編集例(my2.ini)」
    を参考に修正する

[3] コマンドプロンプトを管理者権限で実行し、
    以下のコマンドでWindowsサービスとして登録する
~~~~~~~~
[構文]
mysqld --install 【サービス名】 --defaults-file="【MySQL設定ファイルのパス】"

[例]
cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
mysqld --install MySQL57_2 --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my2.ini"
~~~~~~~~

[4] 手順[2]の「datadir」で指定したフォルダ(例「Data2」)を新規作成しておく

[5] デフォルトの「Data」配下にある「mysql」「performance_schema」をコピーし、
    手順[4]のフォルダ配下にペーストする

[6] Windowsサービス(例「MySQL57_2」)を起動する
 → 今回作成したポート(例「23306」)で、デフォルトで使用していたMySQLのユーザ/パスワードから
     ログインできるか確認。

ファイル構成例

C:\ProgramData\MySQL\MySQL Server 5.7
 + my.ini  << デフォルトであるMySQLの設定ファイル
 + my2.ini << 今回、別インスタンスあげるMySQLの設定ファイル
 + Data << デフォルトであるMySQLのフォルダ
    + mysql
    + performance_schema
 + Data2 << 今回、別インスタンス
    + mysql
    + performance_schema

MySQL設定ファイルの編集例(my2.ini)

[mysqld]

# 中略

# The TCP/IP Port the MySQL Server will listen on
port=23306 # ★ここを修正。ポート番号★

# Path to installation directory. All paths are usually resolved relative to this.
# basedir="C:/Program Files/MySQL/MySQL Server 5.7/"

# Path to the database root
datadir=C:/ProgramData/MySQL/MySQL Server 5.7\Data2 # ★ここを修正(手順[4]のフォルダ)★

# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=utf8

# 中略

# Server Id.
server-id=2 # ★ここを修正★

■ 補足:同じDBを別インスタンスとして、起動したい場合

同じDBを別インスタンスとして、起動したい場合は、
C:\ProgramData\MySQL\MySQL Server 5.7
をコピーして、「my.ini」を修正。
後は、一緒。


関連記事

MySQL を複数インスタンスで起動させる ~ Linux編 ~

http://blogs.yahoo.co.jp/dk521123/36493945.html