首先,修改 MySQL 的配置文件,并启用 GTID 主从复制功能;然后,使用 GTID 主从方式,建立 RDS 实例与本地 MySQL 的主从关系,从而实现两者的数据同步。其中,RDS 实例作为 主实例 ,本地 MySQL 数据库作为 从实例 ,通过主从同步的方式,将 RDS 实例中的数据库同步到本地。

1. 通过如下步骤,修改 本地MySQL数据库  MySQL 配置文件。

1)执行如下命令,打开 MySQL 配置文件 my.cnf 的编辑页面

vim /etc/my.cnf

2)在键盘中,输入 i ,进入编辑模式。

  •     首先,修改(加粗字体,1516行),并增加后面的内容,修改后的结果请参考下图:

    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

    022818 1204 RDSMyS1 - 阿里云上建立RDS与本地MySQL主从同步

  •     然后,在底部添加如下参数,添加 GTID 主从复制功能的相关参数信息:

    gtid_mode=on

    enforce_gtid_consistency=on

    log-slave-updates=1

    022818 1204 RDSMyS2 - 阿里云上建立RDS与本地MySQL主从同步

    3)点击键盘的 esc ,并输入 :wq 回车。保存并推出 vim 的编辑模式。

    022818 1204 RDSMyS3 - 阿里云上建立RDS与本地MySQL主从同步

    2. 完成如上 MySQL 配置文件的修改后,执行如下命令,重启本地 MySQL 数据库,生效配置信息。

    service mysqld restart

    022818 1204 RDSMyS4 - 阿里云上建立RDS与本地MySQL主从同步

    3. 通过如下步骤,在本地 MySQL 数据库中,配置并启动 GTID 主从复制功能:

    1)首先,执行如下命令,进入 mysql 命令界面:

    mysql -uroot -p

        提示输入密码 Enter Password: 直接回车 就可以。

    说明:为了便于实验,没有设置 MySQL 的访问密码,在真实的工作环境,为了数据安全,强烈建议用户设置较复杂的密码。MySQL 的操作方法,烦请参考实验 SL106 快速部署并使用MySQL数据库 

    022818 1204 RDSMyS5 - 阿里云上建立RDS与本地MySQL主从同步

    2)在开始配置同步 RDS 实例之前,首先执行如下命令,查看本地 MySQL 服务器中的数据库信息:当前仅有提供 4 mysql 默认创建的数据库information_schemamysqlperformance_schematest

    show databases;

    022818 1204 RDSMyS6 - 阿里云上建立RDS与本地MySQL主从同步

    3)执行如下命令,配置同步的主实例 RDS 的连接信息,修改如下命令中的参数信息:

  • master_host替换为 实验资源 提供的 RDS 实例 MySQL 5.6  链接地址 
  • master_userRDS 实例创建的 数据库账号 ,例如:lab_user 
  • master_passwordRDS 实例创建数据库账号时,设置的 密码,例如: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 实例内网访问的白名单 中。

    022818 1204 RDSMyS7 - 阿里云上建立RDS与本地MySQL主从同步

    4)执行如下命令,启动从实例:

    start slave;

    022818 1204 RDSMyS8 - 阿里云上建立RDS与本地MySQL主从同步

    5)执行如下命令,查看本地 MySQL 数据库同步状态。并查看 Slave_IO_Running Slave_SQL_Running 的状态是否为 Yes 只有两个参数均显示 Yes表示配置成功,完成主从复制功能。否则,请根据报错信息,定位错误原因,并进行修改。

    show slave status \G;

    022818 1204 RDSMyS9 - 阿里云上建立RDS与本地MySQL主从同步

    5. 至此,完成 RDS 实例作为主实例,通过主从复制的方式,同步到本地 MySQL 服务器中。

    6. 通过如下操作,实现查看 RDS 实例的同步结果:

    1)执行如下命令,查看 MySQL 中的数据库信息:

    show databases;

    说明:查看到原有MySQL服务器中,新增数据库 lab_db lab_db RDS创建的数据库。

    022818 1204 RDSMyS10 - 阿里云上建立RDS与本地MySQL主从同步

    2)执行如下命令,切换到 lab_db 数据库:

    use lab_db;

    022818 1204 RDSMyS11 - 阿里云上建立RDS与本地MySQL主从同步

    3)执行如下命令,查看数据库中的表信息:

    show tables;

    说明:这是因为,同步的主RDS实例中新建的 lab_db 数据库中没有创建任何表信息。

    022818 1204 RDSMyS12 - 阿里云上建立RDS与本地MySQL主从同步

    参考:https://yq.aliyun.com/articles/57731

发表评论

邮箱地址不会被公开。 必填项已用*标注