使用 RDS 配置到自建数据库的主从复制

配置主实例

  1. 登录 RDS 控制台,选择目标实例。
  2. 配置从实例读取数据使用的只读账号和授权数据库。
  3. 将从实例的 IP 地址加入主实例的 IP 白名单中。
  4. 查询主实例的 server-id。show variables like '%server_id%';

配置从实例

  1. 安装 MySQL 从实例。
  2. 停止从实例 mysql 服务。service mysql stop
  3. 修改从实例 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

你可能感兴趣的:(使用 RDS 配置到自建数据库的主从复制)