[前][次][番号順一覧][スレッド一覧]

mysql:15925

From: "ochiai" <"ochiai" <s.ochiai@xxxxxxxxxx>>
Date: Wed, 13 Feb 2013 16:39:08 +0900
Subject: [mysql 15925] レプリケーション構築について(長文です)(質問)

既存データを運用中のサーバー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”を見る方法も教えていただけましたら、幸いです。
大変長文となりましたが、ぜひ解決方法を教えてください。


添付ファイル

[前][次][番号順一覧][スレッド一覧]

-> @ 15925 2013-02-13 16:39 ["ochiai" <s.ochiai@x] レプリケーション構築について(長文です)(質問)
   @ 15926 2013-02-14 09:14 ┗[Watanabe Tomoyuki <W]                                       
   @ 15928 2013-02-15 10:50  ┗["ochiai" <s.ochiai@x]                                     
   @ 15929 2013-02-15 14:54   ┗[Watanabe Tomoyuki <W]                                   
     15930 2013-02-15 15:02    ┣["yoku ts." <yoku0825]                                 
   @ 15932 2013-02-15 16:48    ┃┗["ochiai" <s.ochiai@x]                               
     15933 2013-02-15 18:47    ┃ ┗["yoku ts." <yoku0825]                             
   @ 15936 2013-02-20 11:31    ┃  ┗["ochiai" <s.ochiai@x]                           
     15937 2013-02-20 15:24    ┃   ┗["yoku ts." <yoku0825]                         
     15941 2013-02-27 12:28    ┃    ┗[Watanabe Tomoyuki <W]                       
     15942 2013-02-27 13:03    ┃     ┗["yoku ts." <yoku0825]                     
     15952 2013-03-13 15:17    ┃      ┗[ochiai <s.ochiai@xxx] Re: レプリケーション構築について(長文です)(質問)_解決まとめ
     15953 2013-03-13 15:38    ┃       ┗["yoku ts." <yoku0825]                 
     15954 2013-03-13 16:49    ┃        ┗[ochiai <s.ochiai@xxx]               
   @ 15931 2013-02-15 16:35    ┗["ochiai" <s.ochiai@x] RE:[mysql 15929] Re: レプリケーション構築について(長文です)(質問)
   @ 15934 2013-02-15 19:06     ┗[Watanabe Tomoyuki <W] RE: [mysql 15931] RE:[mysql 15929] Re: レプリケーション構築について(長文です)(質問)