主從複製 配置(異步)

https://segmentfault.com/a/1190000010199283mysql

 

異步複製,只會複製,最新改動,會忽略以前的改動,所以 復掉以前要把數據 dump到從機中sql

 

3、準備工做

1.安裝 MySQL5.7 詳見此處
2.若是從服務器克隆主服務器,則修改 auto.cnf 文件中 server-uuid 值,否則後面主從複製會報 1593 錯誤,修改完記得重啓MySQL
數據庫

3.關閉主、從服務器防火牆segmentfault

$ firewall-cmd --state              ##查看防火牆狀態
running                             ##防火牆開啓

$ systemctl stop firewalld          ##關閉防火牆

$ firewall-cmd --state
not running                         ##防火牆關閉

4.修改主從配置文件(my.cnf):服務器

## 192.168.78.128(master)
bind-address=192.168.78.128         #master 服務器地址
log_bin=mysql-bin  
server_id=128

## 192.168.78.130(slave)
bind-address=192.168.78.130         #slave 服務器地址
log_bin=mysql-bin  
server_id=130

重啓主從 MySQL:異步

$ systemctl restart mysqld

server_id 必須惟一。ide

5.master 上建立一個測試數據庫(test):測試

$ create database test;
$ use test;
$ create table test(id int(11), value varchar(20));
$ insert into test values(1, 'aa'),(2, 'bb'),(3, 'cc');

4、主從複製

1.master建立受權用戶:
192.168.78.128(master)ui

## 建立 test 用戶,指定該用戶只能在主庫 192.168.78.130 上使用 MyPass1! 密碼登陸
mysql> create user 'test'@'192.168.78.130' identified by 'MyPass1!';

## 爲 test 用戶賦予 REPLICATION SLAVE 權限。
mysql> grant replication slave on *.* to 'test'@'192.168.78.130';

## 查看用戶
mysql> select user,host from mysql.user;

## 查看 master 狀態
mysql> show master status;



這裏的 mysql-bin.000001和 Position 值 slave 配置時須要用到。spa

2.將 master 中現有的數據信息導出

$ mysqldump -u root -p --all-databases --master-data > all.sql

3.將 all.sql 發送到 slave 服務器 tmp 目錄下:

$ scp all.sql root@192.168.78.130:/tmp

4.slave 導入 master 數據,使 master-slave 數據保持一致

192.168.78.130(slave)

$ mysql -uroot -p < all.sql

5.使 slave 與 master 創建鏈接,從而同步:

mysql> change master to
    -> master_host='192.168.78.128',
    -> master_user='test',
    -> master_password='MyPass1!',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=1244;
    
mysql> start slave;

mysql> show slave status \G

  • master_log_file 和 master_log_pos值爲主庫上面執行show master status獲得

  • 若是 Slave_IO_Running 和 Slave_SQL_Running 都爲 Yes,說明配置成功

  • 若是其中一項不爲 Yes,查看 Last_IO_Errno 錯誤碼和錯誤信息,或者查看 MySQL 日誌信息並查找對應問題

5、主從配置檢驗

master 插入一條數據,slave查看是否成功
192.168.78.128(master)

192.168.78.130(slave)

相關文章
相關標籤/搜索