首頁 > 資料庫 > mysql教程 > MySQL同步資料Replication如何實現

MySQL同步資料Replication如何實現

王林
發布: 2023-05-26 15:22:26
轉載
1431 人瀏覽過

MySQL的Replication功能可以將一個資料庫的資料同步到多個其他資料庫。一般把第一個稱為主資料庫(master),第二個稱為從資料庫(slave)。 MySQL複製過程採用非同步方式,但延遲非常小,秒級同步。

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

1.在主庫上發生的資料變更記錄到二進位日誌Binlog
2.從庫的IO執行緒將主庫的Binlog複製到自己的中繼日誌Relay log
3.從庫的SQL線程透過讀取、重播中繼日誌實現資料複製

MySQL同步資料Replication如何實現

MySQL的複製有三種模式:Statement Level、Row Level、Mixed Level。不同的複製等級會導致主伺服器產生二進位日誌檔案的不同形式。

二、同步資料範例

作業系統: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狀態,取得日誌檔案名稱與偏移資訊

MySQL同步資料Replication如何實現

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 status\G
登入後複製

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

以上是MySQL同步資料Replication如何實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板