配置主實例
- 登錄 RDS 控制檯,選擇目標實例。
- 配置從實例讀取數據使用的只讀賬號和授權數據庫。
- 將從實例的 IP 地址加入主實例的 IP 白名單中。
- 查詢主實例的 server-id。
show variables like '%server_id%';
配置從實例
- 安裝 MySQL 從實例。
- 停止從實例 mysql 服務。
service mysql stop
- 修改從實例 mysql 配置文件。
vim /etc/my.cnf
(1)、配置從實例的 server-id 和要同步的數據庫。
server-id = 123456789 //服務 ID,主從實例 server-id 需不同。
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
replicate-do-db = exampledb //需要同步的數據庫
replicate-ignore-db = mysql //不需要同步的數據庫
replicate-ignore-db = information_schema //不需要同步的數據庫
replicate-ignore-db = performance_schema //不需要同步的數據庫
(2)、配置 GTID 同步模式,binlog 格式爲 row,以兼容主實例。
#GTID
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row //設置 binlog 爲 row
log-slave-updates=1
執行如下命令,查看 binlog 配置結果。
show variables like '%binlog_format%';
(3)、將主實例數據全量導出。
mysqldump -h RDS數據庫ip -P RDS數據庫端口 -u RDS數據庫賬號 -p RDS數據庫密碼 數據庫名 > 導出的文件名.sql
(4)、將主實例數據全量導入從庫實例。
//創建從實例的數據庫
CREATE DATABASE 數據庫名;
//進入從實例數據庫
use 數據庫名;
//導入sql文件
source 導出的文件名.sql
(5)、登錄從實例數據庫,設置同步選項。
change master to master_host='192.168.0.104', //Master 服務器Ip
master_port=3306,
master_user='repl',
master_password='mysql',
master_log_file='master-bin.000001',//Master服務器產生的日誌
master_log_pos=0;
(6)、啓動Slave
start slave;
(7)、檢查同步結果。
show slave statue\G
查看系統返回信息中 Slave_IO_Running 和 Slave_SQL_Running 的狀態是否爲 Yes。
其他相關命令
//進入 MySQL 命令行
mysql -uroot -p
//使用service 啓動
service mysqld start
//使用service 關閉
service mysqld stop
//使用service 重啓
service mysqld restart
//使用service 查看啓動狀態
service mysqld status