一、介紹
MySQL 主從復制的方式有多種,本文主要演示基于基于日志(binlog)的主從復制方式。
MySQL 主從復制(也稱 A/B 復制) 的原理:
Master將數據改變記錄到二進制日志(binary log)中,也就是配置文件log-bin指定的文件, 這些記錄叫做二進制日志事件(binary log events);Slave 通過 I/O 線程讀取 Master 中的 binary log events 并寫入到它的中繼日志(relay log);Slave 重做中繼日志中的事件, 把中繼日志中的事件信息一條一條的在本地執行一次,完 成數據在本地的存儲, 從而實現將改變反映到它自己的數據(數據重放)。
二、注意事項
主從服務器操作系統版本和位數一致;
Master 和 Slave 數據庫的版本要一致;
Master 和 Slave 數據庫中的數據要一致;
Master 開啟二進制日志, Master 和 Slave 的 server_id 在局域網內必須唯一。
三、配置步驟
1.主節點(Master)上的操作
a)修改 Master 的配置文件/etc/my.cnf
vi /etc/my.cnf
在my.cnf文件中加入如下配置內容
[mysqld]
log-bin=mysql-bin
server-id=1
重新啟動數據庫
b)在主節點創建一個用戶repl,用于從節點鏈接主節點時使用
mysql> CREATE USER 'repl'@'192.168.199.198' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.199.198';
c)刷新授權表信息
mysql> flush privileges;
d)查看當前主從狀態
mysql> SHOW MASTER STATUS;
2.從節點(Slave)上的操作
修改 Master 的配置文件/etc/my.cnf
vi /etc/my.cnf
在my.cnf文件中加入如下配置內容
[mysqld]
log-bin=mysql-bin
server-id=2
重新啟動數據庫
3.從節點(Slave)上的參數設置
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.199.149',
MASTER_USER='repl',
MASTER_PASSWORD='Ron_master_1',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=856;
4.開啟主從同步
mysql> start slave;
5.再次查看主從同步狀態
mysql> show slave status\G;