Mysql實現主從複製(一主雙從)
一、環境介紹
LNMP(centos7,mysql5.6)
vmware workstation pro配置了3個虛擬機器,均安裝了LNMP環境:
master: 192.168.0.105
slave: 192.168.0.106 、192.168.0.107
二、原理
(1)主資料庫進行增刪改操作後,相應操作記錄的語句(比如 create database test)會記錄到binlog日誌檔案中(binlog日誌檔案一般和資料庫data資料夾在一起)。
(2)從資料庫會請求主資料庫的binlog日誌檔案,獲取到新的操作語句,然後在自己的從資料庫上自動執行相同的操作語句,進而實現主從的同步。
注:這裡,我們所需要配置的只是主從環境以及開啟binlog日誌,其他的mysql會自動完成。
使用場景:http://baijiahao.baidu.com/s?id=1598186201849829616&wfr=spider&for=pc
三、詳細主從複製過程
(1)Master開啟bin-log功能,binlog日誌檔案用於記錄資料庫的增刪改操作。
(2)需要開啟三個執行緒,Master:I/O執行緒;Slave:I/O執行緒,SQL執行緒。
(3)Slave start;通過I/O執行緒連線Master,並且請求某個bin-log,position之後的內容。
(4)Master伺服器收到Slave I/O執行緒發過來的日誌請求資訊,然後Master I/O執行緒將bin-log內容、position返回給Slave IO執行緒。
(5)Slave伺服器收到bin-log日誌內容,將bin-log日誌內容寫入到relay-log中繼日誌,建立一個master.info檔案,該檔案記錄master IP、使用者名稱、密碼、master bin-log名稱、bin-log position。
(6)Slave已經開啟了sql執行緒,由sql執行緒實時監測relay-log日誌內容是否有更新,如果有更新,則解析檔案中的sql語句,並在Slave資料庫中執行相同的操作語句。
注:可以通過show slave status \G 來檢視具體的中繼日誌路徑以及連線的master的其他資訊。
四、主從複製的實現
1、master機器上的配置
(1)vim /etc/my.cnf #修改mysql的配置檔案
(2)配置bind-address (配置成master-ip)和 server-id (改成ip後三位即可,也可以改為其他,比如5)以及開啟bin-log(預設是已經開啟),如下:
bind-address = 0.0.0.0
server-id = 105
注:此處允許所有ip地址可以遠端登入此mysql,出於安全考慮,可以配置防火牆規則進行mysql遠端登入的ip的限制。
配置防火牆規則連結:https://blog.csdn.net/m_nanle_xiaobudiu/article/details/81070480
(3)建立用於slave機器獲取master機器上binlog檔案的賬號(從機器複製使用者)
grant replication slave on *.* to 'xiaobudiu'@'%' identified by 'xiaobudiu123';
(4) flush privileges; #重新整理資料庫
(5)show master status; #檢視master狀態,並記錄下binlog日誌檔名以及position
2、slave機器上的配置
(1)在兩臺從機器上分別配置mysql配置檔案中的bind-address 和 server-id
192.168.0.106機器上:
bind-address = 0.0.0.0
server-id = 106
192.168.0.107機器上:
bind-address = 0.0.0.0
server-id = 107
(2)分別在兩臺從庫上操作
change master to master_host='192.168.0.105', master_port=3306, master_user='xiaobudiu', master_password='xiaobudiu123', master_log_file='mysql-bin.000045', master_log_pos=402;
(3)分別開啟兩臺從庫
(4)驗證從庫狀態
當從庫的 IO執行緒和SQL執行緒的狀態都是yes時,說明主從模式配置成功。
五、實現Mysql讀寫分離
https://blog.csdn.net/m_nanle_xiaobudiu/article/details/81048538
相關文章
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- mysql實現主從複製MySql
- mysql主從複製(一):一主多從MySql
- docker實現mysql主從複製DockerMySql
- Linux實現MySql資料庫的主從複製(一主一從)LinuxMySql資料庫
- MySQL(14)---Docker搭建MySQL主從複製(一主一從)MySqlDocker
- mysql5.7主從複製,主主複製MySql
- MySQL 主從複製,雙機熱備MySql
- MySQL 主從複製實操MySql
- MySQL主從複製MySql
- mysql資料庫實現主從複製MySql資料庫
- 簡單實踐實現 MySQL 主從複製MySql
- redis 主從複製實現Redis
- mysql複製--主從複製配置MySql
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- MySQL 的主從複製實踐MySql
- MySQL主從複製原理MySql
- MySQL的主從複製MySql
- mysql--主從複製MySql
- mysql 8.4 主從複製MySql
- mysql主從複製搭建MySql
- MySQL主從複製之GTID複製MySql
- MySQL-主從複製之同步主從資料MySql
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- MySQL++:Liunx - MySQL 主從複製MySql
- MySQL(13)---MYSQL主從複製原理MySql
- windows 下mysql主從複製WindowsMySql
- mysql主從延遲複製MySql
- MYSQL主從複製配置(整理)MySql
- MySQL主從複製歷程MySql
- MySQL-18.主從複製MySql
- Windows Mysql主從複製部署WindowsMySql
- Mysql 傳統主從複製MySql
- MySQL8.0主從複製MySql
- MYSQL一個裝置上的主從複製實現-windowsMySqlWindows
- Mysqldump實現mysql的master-slave主從複製MySqlAST
- MySQL主從複製之半同步複製MySql