[轉]mysql5.7主從複製,主主複製

 

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

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

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中。


---------------------

原文地址:

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

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章