配置主实例
- 登录 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