既存データを運用中のサーバーAと新規にMySQLをインストールしたサーバーBとで、
運用中のサーバーAをマスターに、新規のサーバーBをスレーブにしたレプリケーションを行おうとしていますが、うまくできません。
どなたか、教えてください。
 
スレーブ上でマスター情報登録するCHANGE MASTER TOコマンドを実行すると、
 
ERROR 1201 (HY000): Could not initialize master info structures; more error messages can be found in the MySQL error log
 
となって、レプリケーションが有効になりません。
 
なお、サーバーAはマスターとして動いているようです。
 
 
現在の環境と実行した結果は以下の通りです。(長文です)
 
<作業環境>
1.サーバーA:マスターの環境
  OS:Windows 7 Professional SP1(32bit)
  PC:DELL Vostro(Intel Core 2 Duo,CPU E7500 2.93GHz) RAM 2.00GB
 
  MySQLサーバ:バージョン5.5.25
  (mysql-5.5.25-win32.msi)
  Workbench:バージョン5.2.39CE Revision 8757
  (mysql-workbench-gpl-5.2.39-win32.msi)
 
    コンフィグレーション
  Configuration File: C:\Program Files\MySQL\MySQL Server 5.5\my.ini
    <iniファイルの内容>
    basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
    datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
 
2.サーバーB:スレーブの環境
  サーバマシンと同じ構成のPC
 
    コンフィグレーション
  Configuration File: C:\ProgramData\MySQL\MySQL Server 5.5\data\my.ini
    <iniファイルの内容>
    basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
    datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
 
 
<行った手順>
 
0.(マスター)(スレーブ) MySQL起動
 
1.(マスター)レプリケーション専用ユーザの登録
 
1-1.マスター上のMySQLに、スレーブからアクセスするレプリケーション用ユーザー(repli)を登録。
 
Workbench/Admin/Users and Privileges/
  Server Access Management/Administrative Rolesタブで ReplicationAdmin権限を設定
    Schema Privileges/ ですべてのスキーマに対してすべての権限を設定
 
1-2.(スレーブ)スレーブから1-1.で作成したアカウントでマスターへの接続確認
Workbench/New Connectionで
  Hostname = マスターのIPアドレス
    Port     = 3306
    Username = repli
    Password = 1-1.でrepliに対して設定したパスワード
    Default Schema = Nullのまま
として「Test Connection」ボタンを押したところ、
  「Connection parameters are correct.」
となり接続成功。
 
 
2.(マスター)コンフィギュレーション設定
 
2-1.マスター上のMySQLを停止
マスターのレプリケーション設定を行うためにマスター上のMySQLを停止
 
2-2.マスターのmy.iniファイル編集(WorkBench使用)
[mysqld]
    log-bin = mysql-bin
    binlog-format = MIXED
    general-log
    auto_increment_increment = 1
    server-id = 4
    log-error = log-error
    show-slave-auth-info
    auto_increment_offset = 1
    general_log_file = host_name.log
    sync_binlog = 1
    log-bin-index =
 
iniファイルが設定どおり更新されているか確認した。
 
3.(スレーブ)コンフィギュレーション設定
 
3-1.スレーブ上のMySQLを停止
スレーブの設定を行うためにスレーブ上のMySQLを停止
 
3-2.スレーブのmy.iniファイル編集(WorkBench使用)
 
[mysqld]
    sync_binlog = 1
    server-id = 6
    log-slave-updates
    slave-load-tmpdir = /tmp
    report-host = Slave_Toshijoho
    report-port = 3306
    skip-slave-start
 
General slaveセクションで
skip-slave-start をチェックし、スレーブサーバを起動したとき、自動でスレーブが起動しないようにした。
 
なお、下記のマスターの情報はWorkbenchで設定する場所がないので、my.iniファイルの[mysqld]セクションに追加した。
 
master-host='123.456.789.101'(マスターのIPアドレス)
master-user='repli'(マスターに登録したレプリケーション用ユーザー名)
master-password='password'(マスターに登録したレプリケーション用ユーザーのパスワード)
master-port=3306
 
 
4.(マスター)レプリケーション情報の取得
マスターで、以下の処理を行う。マスターのMySQLは停止中
 
4-1.マスターのMySQLを起動
停止中のMySQLを起動。
 
4-2.データのフラッシュ
mysql> FLUSH TABLES WITH READ LOCK;
 
4-2.マスターレプリケーション情報の取得
mysql> SHOW MASTER STATUS;
File:     mysql-bin.000004
Position: 597
 
5.(マスター)マスター上のデータをアーカイブ
 
コマンドプロンプトでmysqldumpを実行
 
C:\......>mysqldump --host="localhost"
    --user="root"
    --password="????"
    --all-database --lock-all-tables
    > dbdump.db
 
アーカイブが完了したら、ロックを解除する。
mysql> UNLOCK TABLES;
 
 
 
6.(スレーブ)スレーブにマスターのデータをインポート
 
6-1.スレーブサーバーのMySQLを起動
--skip-slaveオプションを使用してレプリケーションをスキップし、スレーブを立ち上げる。
(my.iniファイルにskip-slave-startオプションを設定済み)
 
6-2.インポート
mysqldumpで作成したマスターのダンプファイルをコマンドプロンプトでインポートする。
 
C:\......>mysql --user="root" --password="???" < dbdump.db
 
 
7.(スレーブ)マスター情報登録
 
mysql> STOP SLAVE;
 
mysql> CHANGE MASTER TO
    MASTER_HOST = '123.456.789.101', (マスターのIPアドレス)
    MASTER_PORT=3306,
    MASTER_USER = 'repli', (マスターに登録したレプリケーション用ユーザー名)
    MASTER_PASSWORD = 'password'(マスターに登録したユーザrepliのパスワード),
    MASTER_LOG_FILE = 'mysql-bin.000004',
    MASTER_LOG_POS = 107;
 
ここで、下記のエラーが発生。
ERROR 1201 (HY000): Could not initialize master info structures; more error messages can be found in the MySQL error log
 
8.(スレーブ)スレーブ起動
 
mysql> START SLAVE;
 
7.がうまくいっていないので、ここでもERROR 1201 (HY000)がでて、スレーブは起動しません。
 
9.(マスター)マスターの確認
 
mysql> show master status\G  エラーなし 1行リターン
            File: mysql-bin.000004
        Position: 597
    Binlog_Do_DB:
Binlog_Ignore_DB:
 
10.(スレーブ)スレーブの確認
 
スレーブの状態を確認したところ、下記のようになっていて、動いていないようです。
 
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: 123.456.789.101
                  Master_User: repli
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 107
.......
             Slave_IO_Running: No
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 107
              Relay_Log_Space: 0
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 0
1 row in set (0.00 sec)
 
 
なお、CHANGE MASTER TOでのエラーメッセージにある”MySQL error log”を見る方法も教えていただけましたら、幸いです。
大変長文となりましたが、ぜひ解決方法を教えてください。