Mysql導入mysqlプライマリ・スレーブ同期

2209 ワード

  • mysql主従同期
  • ≪プライマリ|Primary|emdw≫:クライアントによってアクセスされているデータベース・サーバ.プライマリ・ライブラリ・サーバと呼ばれます.
    スレーブ:マスター・ライブラリ上のデータを自動的に同期するデータベース・サーバ.スレーブ・ライブラリ・サーバと呼ばれます.
  • 環境準備
  • 1.マスタースレーブが同期して構成されていない前に、マスターライブラリ上のデータがライブラリ上にあることを保証します.
    ここで言う必要があるのは、プライマリ・ライブラリとスレーブ・ライブラリのデータは必ずしもすべて同じではなく、スレーブ・ライブラリのデータはプライマリ・ライブラリよりも多く、関係を含むことができるということです.
    2.selinux setenforce 0を無効にする
    3.ファイアウォールサービスsystemctl stop firewalldを閉じる
    4.物理接続正常ping-c 2 192.168.4.51/52
    5.データベース正常運行管理者は本機からログインできる
  • マスターライブラリの構成
  •     1. ユーザー権限の作成
    mysql> grant replication slave on *.*
    -> to
    -> repluser@"192.168.4.52"
    -> identified by "123456"

        2. binlogログの有効化
    ]# vim /etc/my.cnf
    [mysqld]
    server_id=51
    log-bin=master51
    binlog-format="mixed"
    ]# systemctl restart mysqld
    ]# ls /var/lib/mysql/master51.*       ##/var/lib/mysql/master51.000001  /var/lib/mysql/master51.index

        3. 使用中のbinlogログ情報の表示
    ]# mysql -uroot -p123456
    mysql> show master status;
  • 構成スレーブ
  •     1. プライマリ・ライブラリのユーザー権限の検証
    ]# mysql -h192.168.4.51 -urepluser -p123456
    mysql> show grants;
    mysql> quit;

        2. 指定server_id
    ]# vim /etc/my.cnf
    [mysqld]
    server_id=52
    ]# systemctl restart mysqld

        3. データベース管理者ネイティブログイン、プライマリ・データベース・サーバの情報の指定
    ]# mysql -uroot -p123456
    mysql> change  master  to
    -> master_host="  ip  ",
    -> master_user="       ",
    -> master_password="      ",
    -> master_log_file="  binlog     ",
    -> master_log_pos=binlog       ;

        4. slaveプロセスの開始
    mysql> start slave;

        5. プロセスステータス情報の表示
    mysql> show slave status\G;
    Slave_IO_Running: Yes                 //IO   SQL    YES    
    Slave_SQL_Running: Yes
  • 関連命令
  • mysql> show slave status;              //        
    mysql> show master status;             //     binlog      
    mysql> show processlist;               //                  
    mysql> start slave;                    //  slave   
    mysql> stop slave;                     //  slave