阿里云上建立RDS与本地MySQL主从同步
首先,修改 MySQL 的配置文件,并启用 GTID 主从复制功能;然后,使用 GTID 主从方式,建立 RDS 实例与本地 MySQL 的主从关系,从而实现两者的数据同步。其中,RDS 实例作为 主实例 ,本地 MySQL 数据库作为 从实例 ,通过主从同步的方式,将 RDS 实例中的数据库同步到本地。
1. 通过如下步骤,修改 本地MySQL数据库 的 MySQL 配置文件。
1)执行如下命令,打开 MySQL 配置文件 my.cnf 的编辑页面。
vim /etc/my.cnf
2)在键盘中,输入 i ,进入编辑模式。
-
首先,修改(加粗字体,15和16行),并增加后面的内容,修改后的结果请参考下图:
binlog_format = row
server-id = 1234567890
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
说明:如上的参数详细说明,请参考本实验的 常见问题 。
若要指定同步的数据库,需增加参数 replicate-do-db ,并赋值指定的 RDS 数据库。例如:replicate-do-db = lab_db。 -
然后,在底部添加如下参数,添加 GTID 主从复制功能的相关参数信息:
gtid_mode=on
enforce_gtid_consistency=on
log-slave-updates=1
3)点击键盘的 esc ,并输入 :wq ,回车。保存并推出 vim 的编辑模式。
2. 完成如上 MySQL 配置文件的修改后,执行如下命令,重启本地 MySQL 数据库,生效配置信息。
service mysqld restart
3. 通过如下步骤,在本地 MySQL 数据库中,配置并启动 GTID 主从复制功能:
1)首先,执行如下命令,进入 mysql 命令界面:
mysql -uroot -p
提示输入密码 Enter Password: ,直接回车 就可以。
说明:为了便于实验,没有设置 MySQL 的访问密码,在真实的工作环境,为了数据安全,强烈建议用户设置较复杂的密码。MySQL 的操作方法,烦请参考实验 SL106 快速部署并使用MySQL数据库 。
2)在开始配置同步 RDS 实例之前,首先执行如下命令,查看本地 MySQL 服务器中的数据库信息:当前仅有提供 4 个 mysql 默认创建的数据库information_schema,mysql,performance_schema,test。
show databases;
3)执行如下命令,配置同步的主实例 RDS 的连接信息,修改如下命令中的参数信息:
- master_host:替换为 实验资源 提供的 RDS 实例 MySQL 5.6 的 链接地址 ;
- master_user:RDS 实例创建的 数据库账号 ,例如:lab_user ;
-
master_password:RDS 实例创建数据库账号时,设置的 密码,例如:Passw0rd;
change master to master_host = ‘rm-xxxx.mysql.rds.aliyuncs.com’, master_port = 3306, master_user = ‘lab_user’, master_password=‘Passw0rd’, master_auto_position = 1;
说明:ECS 实例和 RDS 实例在相同地域时,可以通过内网访问,否则 RDS 实例需 申请外网地址 ,才可以进行访问。本实验资源在创建的时候,RDS 访问白名单中加入 0.0.0.0/0 的IP地址,也就是默认所有 相同地域 的服务器都可以通过内网访问 RDS 实例,不同地域的服务器可以通过外网地址访问 RDS 实例。在真实的工作环境中,为了确保数据安全,建议用户 仅将需要访问的 ECS 实例的内网地址 加入到 RDS 实例内网访问的白名单 中。
4)执行如下命令,启动从实例:
start slave;
5)执行如下命令,查看本地 MySQL 数据库同步状态。并查看 Slave_IO_Running ,Slave_SQL_Running 的状态是否为 Yes 。只有两个参数均显示 Yes,表示配置成功,完成主从复制功能。否则,请根据报错信息,定位错误原因,并进行修改。
show slave status \G;
5. 至此,完成 RDS 实例作为主实例,通过主从复制的方式,同步到本地 MySQL 服务器中。
6. 通过如下操作,实现查看 RDS 实例的同步结果:
1)执行如下命令,查看 MySQL 中的数据库信息:
show databases;
说明:查看到原有MySQL服务器中,新增数据库 lab_db ,lab_db 为RDS创建的数据库。
2)执行如下命令,切换到 lab_db 数据库:
use lab_db;
3)执行如下命令,查看数据库中的表信息:
show tables;
说明:这是因为,同步的主RDS实例中新建的 lab_db 数据库中没有创建任何表信息。