使用RDS和本地mysql做主从同步,实现多服务器数据同步

导读:最近有个项目要做多服务器数据同步,我设计的方案是使用RDS做主数据库,各服务器上mysql做从数据库,同步RDS上的数据。读写分离,所有数据写全部写到RDS里,数据读取从本地mysql中读,这样通过同步就能保证各个服务器上读取的数据一致了。
最近有个项目要做多服务器数据同步,我设计的方案是使用RDS做主数据库,各服务器上mysql做从数据库,同步RDS上的数据。读写分离,所有数据写全部写到RDS里,数据读取从本地mysql中读,这样通过同步就能保证各个服务器上读取的数据一致了。具体的配置步骤入下:

1、进入本地服务器,先关闭mysql数据库

service mysql stop

2、修改/ect/my.cnf中的配置信息

server-id = 10001 #保持id唯一

#GTID:

gtid_mode=on

enforce_gtid_consistency=on

#binlog

log_bin= /alidata/log/mysql/slave-binlog.log

log-slave-updates=1

binlog_format=mixed

#relay log

skip_slave_start=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

expire_logs_days = 10

max_binlog_size = 100M

replicate-do-db = test #需要同步的数据库

replicate-ignore-db = mysql #不需要同步的数据库

replicate-ignore-db = information_schema #不需要同步的数据库

replicate-ignore-db = performance_schema #不需要同步的数据库

slave-skip-errors = 1032 #因为同步时有个1032错误导致同步终止,所以我就跳过了这个错误

3、重启本地mysql数据库

service mysql start

4、链接RDS数据库,将RDS中的数据库导入到本地数据库中,

(1)、先锁RDS表,禁止写入操作

flush tables with read lock;

(2)、从RDS导出:mysqldump -uroot -ptest -hmasterhost.mysql.rds.aliyuncs.com> /tmp/test.sql

(3)、再导入到本地: mysql -uroot -p test < /tmp/test.sql ,记得需要先建库test

5、进入本地数据库设定主库信息

mysql>change master to master_host = 'masterhost.mysql.rds.aliyuncs.com', master_port = 3306, master_user = 'catest', master_password='masterpassword', master_auto_position = 1;

6、start slave

7、show slave status \G

查看系统返回信息中 Slave_IO_Running 和 Slave_SQL_Running 的状态是否为 Yes,如下所示。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

两个都是yes 表示成功

8、 所有的服务器配置完毕后,将RDS上的表解锁

unlock tables;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值