天天看點

MySQL主從配置及主從恢複

環境說明

主:centos7 192.168.11.128

從:centos7 192.168.11.129

MySQL5.7

配置主

1、 vi /etc/my.cnf

    server-id=128

    log_bin=master128

2、 重新開機

    service mysqld restart

    service mysqld status

    ls -lt /var/lib/mysql

3、 建立一個資料庫為試驗做準備

    mysql> create database zctest;

    mysqldump -uroot -p123456 zctest > /tmp/zctest.sql #備份

    scp /tmp/zctest.sql 'root'@'192.168.11.129':/tmp/ #将備份檔案傳給從庫伺服器

4、 建立同步賬号

    #隻給複制權限,對所有庫所有表,ip為從伺服器的ip,賬号為root,密碼:123456

    mysql> grant replication slave on *.* to 'root'@'192.168.11.129' identified by '123456';

    mysql> flush tables with read lock; #先進行鎖表,等主從伺服器資料保持一緻,再解鎖表

    mysql> show master status; #需要記錄file、position位置

配置從

1、 vi /etc/my.cnf

    server-id=129 #必須得和主伺服器上的server-id不一樣

2、 重新開機

    service mysqld restart

    service mysqld status

3、 恢複資料庫

    mysql -uroot -p123456 zctest < zctest.sql

4、 實作主從同步

    mysql> stop slave;

    #master_log_file、master_log_pos:主伺服器上

    mysql> change master to master_host='192.168.11.128',master_user='root',master_password='123456',master_log_file='master128.000001',master_log_pos=615;

    mysql> start slave;

    mysql> show slave status\G 檢視:

           Slave_IO_Running: Yes

           Slave_SQL_Running: Yes

5、 解鎖主庫的表(在主上操作)

    mysql> unlock tables;

主從恢複

1、 在master進行鎖表

    mysql> flush tables with read lock;

2、 檢視master 狀态:

    show master status; #需要記錄file、position位置

3、    停止從庫的狀态

    mysql> stop slave;

4、 将從庫資料與主庫資料同步(mysqldump、手動執行等方式)

    比如:

    mysqldump -uroot -p123456 zctest > /tmp/zctest.sql (master)

    scp zctest.sql [email protected]:/tmp/ (master)

    mysql -uroot -p123456 zctest < zctest.sql (slave)

5、 設定從庫同步

    #master_log_file與master_log_pos 是主庫show master status資訊裡的| File與Position

    mysql> change master to master_host='192.168.11.128',master_user='root',master_password='123456',master_log_file='master128.000001',master_log_pos=1875;

6、 重新開啟從庫同步

    mysql> start slave; 

    檢視同步狀态

    mysql> show slave status\G 檢視:

        Slave_IO_Running: Yes

        Slave_SQL_Running: Yes、

7、 在master上解鎖:

    mysql> unlock tables;

繼續閱讀