mysql5.7主從複製,主主複製

qq_16676539發表於2018-08-21

主從複製:主庫可寫(會寫入從庫)可讀,從庫只能讀

主主複製:兩個庫可寫可讀,一個庫修改會寫入另一個庫

A.主從複製

1.準備兩臺機器
192.168.1.193 master 主庫機器
192.168.1.194 slave 從庫機器
2.在兩臺機器安裝mysql5.7

https://blog.csdn.net/qq_16676539/article/details/81904714

3.**配置 master 主庫機器 **
a.開啟binlog
設定mysql的唯一編號(mysql5.7即更高版本新加引數), 和開啟binlog日誌
輸入vi /etc/my.cnf 進入配置檔案,按Insert鍵進入編輯模式,新增如下引數
server-id=1 (機器的唯一標識)
log-bin=/var/lib/mysql/mysql-bin (開啟binlog)
這裡寫圖片描述
新增完後,按Esc鍵,輸入 :wq! 儲存退出

b.重啟 service mysqld restart
這裡寫圖片描述

c.進入mysql,檢視binlog是否開啟成功,輸入cd /var/lib/mysql,看到如下檔案代表開啟成功
這裡寫圖片描述
d.建立使用者並授權
登入MySQL mysql -uroot -p
建立使用者:create user ‘repl’ identified by ‘repl’;
授權:grant replication slave on . to ‘repl’@‘192.168.1.%’ identified by ‘repl’;

4.配置slave 從庫機器
a.開啟binlog
輸入vi /etc/my.cnf 進入配置檔案,按Insert鍵進入編輯模式,新增如下引數
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
( ( server-id機器的唯一標識),後面兩步是用來開啟slave的relaylog功能的)這裡寫圖片描述
新增完後,按Esc鍵,輸入 :wq! 儲存退出
b.重啟 service mysqld restart
5.建立主從關係
a.開啟主庫機器登入mysql
輸入 show master status; 檢視狀態
這裡寫圖片描述

b.開啟從庫機器登入mysql
輸入 show slave status\G; 檢視狀態,狀態未開啟時進行如下設定:
change master to
master_host=‘192.168.1.193’, // 主節點
master_port=3306, //主節點的埠號
master_user=‘repl’, // 賬號
master_password=‘repl’, // 密碼
master_log_file=‘mysql-bin.000002’, // show master status 對應的的日誌
master_log_pos=936; // show master status 對應的
這裡寫圖片描述

c.輸入start slave 開啟從節點
輸入 show slave status\G; 檢視狀態,如下圖所示為成功
這裡寫圖片描述

6.Navicat資料庫工具建立主從庫連線,如下圖所示:
如主從庫未開啟遠端訪問,需先開啟,操作如下:
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
這裡寫圖片描述

這裡寫圖片描述

可以運算元據庫啦
這裡寫圖片描述

B.主主複製

1.準備兩臺機器
192.168.1.193 master 主庫機器
192.168.1.195 master 主庫機器
2.在兩臺機器安裝mysql5.7

https://blog.csdn.net/qq_16676539/article/details/81904714
3.修改my.cnf
開啟binlog
輸入vi /etc/my.cnf 進入配置檔案,按Insert鍵進入編輯模式,新增如下引數
第一臺:
server-id=1
log-bin=/var/lib/mysql/mysql-bin
auto_increment_increment=2
auto_increment_offset=1
這裡寫圖片描述
第二臺:
server-id=3
log-bin=/var/lib/mysql/mysql-bin
auto_increment_increment=2
auto_increment_offset=2
這裡寫圖片描述
重啟 service mysqld restart
4. 建立使用者並授權
登入MySQL mysql -uroot -p
建立使用者:create user ‘repl’ identified by ‘repl’;
授權:grant replication slave on . to ‘repl’@‘192.168.1.%’ identified by ‘repl’;
這裡寫圖片描述
set global validate_password_policy=0;
set global validate_password_length=1;

5.建立關係
第二臺關聯第一臺
a.開啟第一臺機器登入mysql
輸入 show master status; 檢視狀態
這裡寫圖片描述

b.開啟第二臺機器登入mysql,執行如下操作
change master to
master_host=‘192.168.1.193’, // 主節點
master_port=3306, //主節點的埠號
master_user=‘repl’, // 賬號
master_password=‘repl’, // 密碼
master_log_file=‘mysql-bin.000002’, // show master status 對應的的日誌
master_log_pos=2072; // show master status 對應的
這裡寫圖片描述

第一臺關聯第二臺
a.開啟第二臺機器登入mysql
輸入 show master status; 檢視狀態
這裡寫圖片描述

b.開啟第一臺機器登入mysql,執行如下操作
change master to
master_host=‘192.168.1.195’, // 主節點
master_port=3306, //主節點的埠號
master_user=‘repl’, // 賬號
master_password=‘repl’, // 密碼
master_log_file=‘mysql-bin.000001’, // show master status 對應的的日誌
master_log_pos=702; // show master status 對應的
這裡寫圖片描述

6.啟動庫,執行start slave
這裡寫圖片描述
這裡寫圖片描述

7.資料庫工具Navicat新建連線,遠端運算元據庫,可以看到兩個庫可以互相讀寫
這裡寫圖片描述
*大功告成~~~~*

原文連結:https://blog.csdn.net/a375015762/article/details/80164042

binlog主要用途

原文連結:https://blog.csdn.net/hblfyla/article/details/70225249

binlog的兩個重要用途:

  1. 主從複製
    對於主從部署的mysql server,master將所有可能更改資料庫狀態的操作寫入binlog並將其同步給slave,後者重放binlog中的操作序列以便使其資料庫狀態與master達到一致,這樣就實現了master-slave的資料同步。

  2. 資料恢復
    資料庫恢復時可以回放binlog重建當機時的資料狀態。假設資料庫在某個備份點後又執行一段時間後當機,則server重啟後,可以在上次備份點的基礎上,通過回放binlog來重做資料以便恢復上次備份點到server當機這段時間內的資料狀態。

注意:binlog只包含可能改變資料庫狀態的操作,因此,select或show等不會修改資料的操作不會記錄在binlog中。

相關文章