目次

内容

参考

作業ステップ(暗号化なしの場合)

レプリケーション元の設定

  • my.cnfでバイナリログを有効化する
    log-bin=mysql-bin
  • サーバIDをmy.cnfで確認しておく
    server-id       = 1
  • レプリケーション専用ユーザーの作成
    # mysql -u root -p
    mysql> GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY '******';
  • MASTER STATUSを確認(テーブルをロックして実行)
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 |    85296 |              |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)
  • データのダンプを保存
    # mysql_dump -u root -p <<データベース名>>> /tmp/dump.sql
  • テーブルのロックを解除
    mysql> UNLOCK TABLES;

レプリケーション先の設定

  • レプリケーション元のデータを取り込み
    # mysql -u root -p 
    mysql> drop database <<データベース名>>;
    mysql> create database <<データベース名>>;
    mysql> \q
    # mysql -u root -p <<データベース名>> < /tmp/dump.sql
  • サーバIDが重複しないようにmy.cnfを編集
    server-id   = 11
  • また、my.cnfに次の指定があることを確認
    [mysqlhotcopy]
    interactive-timeout
  • レプリケーション先の指定
    # mysql -u root -p
    mysql>CHANGE MASTER TO
    MASTER_HOST='レプリケーション元サーバ名',
    MASTER_PORT=3306,
    MASTER_USER='repl',
    MASTER_PASSWORD='******',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=85296 ;
  • レプリケーションの開始
    mysql> START SLAVE;
  • レプリケーションの状態チェック
    mysql> SHOW SLAVE STATUS\G
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: レプリケーション元サーバ名
                      Master_User: repl
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000013
              Read_Master_Log_Pos: 676129616
                   Relay_Log_File: etch1-relay-bin.000002
                    Relay_Log_Pos: 440
            Relay_Master_Log_File: mysql-bin.000022
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
  • Slave_IO_RunningとSlave_SQL_RunningがYesと出ればOK
  • レプリケーションの停止
    mysql> SLAVE STOP

SSHトンネリングを使う場合

レプリケーション先サーバの設定

  • SSHトンネリングのコマンドを実行
    # ssh -f -N -L 13306:127.0.0.1:3306 user@レプリケーション元サーバ名
  • レプリケーション実行時の指定
    # mysql -u root -p
    mysql>CHANGE MASTER TO
    MASTER_HOST='localhost',
    MASTER_PORT=13306,
    MASTER_USER='repl',
    MASTER_PASSWORD='******',
    MASTER_LOG_FILE='mysql-bin.000004',
    MASTER_LOG_POS=189;
    • サーバ名に「localhost」、ポート番号はSSHトンネリングコマンドで指定した値(例:13306)、を指定する。
    • 設定したらSLAVE STARTを忘れずに。

注意

孫スレーブ(スレーブをマスターにしてレプリケーション)する場合


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-25 (日) 19:27:03 (442d)