首頁 > 軟體

MySQL同步資料Replication的實現步驟

2023-03-25 06:00:53

MySQL提供了Replication功能,可以實現將一個資料庫的資料同步到多臺其他資料庫。前者通常稱之為主庫(master),後者則被稱從庫(slave)。MySQL複製過程採用非同步方式,但延時非常小,秒級同步。

一、同步複製資料基本原理

1.在主庫上發生的資料變化記錄到二進位制紀錄檔Binlog
2.從庫的IO執行緒將主庫的Binlog複製到自己的中繼紀錄檔Relay log
3.從庫的SQL執行緒通過讀取、重放中繼紀錄檔實現資料複製

MySQL的複製有三種模式:Statement Level、Row Level、Mixed Level。複製級別的不同,會導致Master端二進位制紀錄檔檔案的生成形式的不同。

二、同步資料範例

作業系統:centos7
資料庫:mysql8
主機(master):192.168.0.101
從機(slave):192.168.0.102

1、修改主從mysql組態檔

主機設定my.cnf

[mysqld] 
# 伺服器標識,每個伺服器不能一樣
server_id=101
# 開啟紀錄檔檔案
log_bin=binlog 
# 普通使用者只能讀 OFF是關閉狀態
read_only=off 
# 超級使用者只能讀 OFF是關閉狀態
super_read_only=off

從機設定

[mysqld]
# 伺服器標識
server_id=102
# 啟用binlog紀錄檔,並指定檔名字首
log_bin=binlog
# 普通使用者只能讀 on是開啟狀態 
read_only=on 
# 超級使用者只能讀 on是開啟狀態 
super_read_only=on

重啟服務

systemctl restart mysqld

2、主機建立同步賬號,並檢視主庫狀態資訊

登入資料庫,並建立賬號

create user repl identified with mysql_native_password by 'repl123';
grant replication slave on *.* to repl;
flush privileges;

檢視主庫master狀態,獲取紀錄檔檔名稱和偏移量資訊

3、從機同步設定

複製主機的二進位制紀錄檔操作(部分資料通過檢視主庫master狀態)
主機的同步賬號:source_user
密碼:source_password
埠:source_port
紀錄檔檔案:source_log_file
偏移量:source_log_pos

change replication source to source_host='192.168.0.101', source_user='repl', source_password='repl123', source_port=3306,source_log_file='binlog.000001', source_log_pos=154;

從機啟動同步

start replica;

4、檢視同步設定效果

在主機上,檢視是否存在從機的連線

show processlist;

檢視從機同步複製的狀態

show slave statusG

在主機上,向某表中插入資料,檢視從機對應表中的資料情況,經測試效果很好(略)

到此這篇關於MySQL同步資料Replication的實現步驟的文章就介紹到這了,更多相關MySQL同步資料Replication內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com