mysqlマスタースレーブ同期の設定

2857 ワード

原因(略)
説明:空いてからにしよう!
ステップ
  • マスターデータベースプロファイルmyを設定.cnf(またはmy.ini);
  • #        
    log_bin = mysql-bin
    server-id = 111
    log-bin-index=mysql-bin.index
    sync_binlog=1
    binlog_format=mixed
    binlog-do-db = testdb #         
    binlog-ignore-db = mysql
    binlog-ignore-db = performance_schema
    binlog-ignore-db = information_schema
    binlog_checksum=NONE
    
  • マスタサーバに同期アカウントを設定
  • mysql> grant replication slave on *.* to [email protected] identified by '123456'
    mysql> flush privileges; #     
    mysql> show master status; #       
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000008 |      337 |              |                  |
    +------------------+----------+--------------+------------------+
    
  • データベースプロファイルmyから変更する.cnf
  • # [  ]       
    log-bin=mysql-bin   
    # [  ]     ID,   1,   IP    
    server-id=222
    relay-log-index = slave-relay-bin.index
    relay-log = slave-relay-bin
    sync_master_info = 1
    sync_relay_log = 1
    sync_relay_log_info = 1
    
  • 接続マスターの構成
  • mysql> change master to master_host='192.168.1.10',master_user='slave',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;
    
  • データベースからの同期を開始
  • mysql> start slave; #       
    mysql> show slave status\G; #       
    #    Slave_IO_Running: Yes,Slave_SQL_Running: Yes,    
    

    関連コマンド
    mysql> start slave; #       
    mysql> stop slave; #       
    mysql> show slave satatus; #       
    mysql> show master status; #       
    mysql> show processlist; #   mysql     
    mysql> set global sql_slave_skip_counter =1; #         ,    
    mysql> flush tables with read lock; #   ,      (     ,      )
    mysql> unlock tables #   
    mysql> source /tmp/mysql.bak.sql #   mysql.bak.sql  (           )
    mysql> change master to master_host = '192.168.128.10', master_user = 'slave', master_port=3306, 
    mysql> master_password='123456', master_log_file = 'mysqld-bin.000001', master_log_pos=3260; #           ;
    mysql> change master to master_user='repl', master_password='replpwd'; #             
    mysql> show grants for 'repl'@'192.168.1.177' #         
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.177' IDENTIFIED BY 'replpwd'; #       
    mysql> system grep repl /data/inst3506/data3506/master.info //         mysql       
    

    参考記事
    Mysql 5.6主従同期構成とソリューションFLUSH TABLES WITH READ LOCKはどれだけ速いかMySQL 5.6主従Slave_IO_Running:Connecting/error connecting to master*-retry MySQLレプリケーションユーザーおよびパスワードの変更