在阿里云ECS上自建RDS(MYSQL)的从库

废话不多说,直接开搞。

1、新购ECS及安装mysql 略过。

按照之前新增从库的套路在导出数据库时尽然卡住了

导出命令

mysqldump -hrm-2zeu9.mysql.rds.aliyuncs.com -urepl -p -P3306 -Q -B -R -v --opt --single-transaction --master-data=1 --add-drop-database --databases test_db  2> 3306-from-rds.log > 3306-from-rds.sql
或
mysqldump -hrm-2zeu9.mysql.rds.aliyuncs.com -urepl -p -P3306 -Q -B -R -v --opt --single-transaction --master-data=1 --add-drop-database --databases test_db  2> 3306-from-rds.log |gzip> 3306-from-rds.sql.gz 

 查看日志,报错信息如下

mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)

 没有权限?? 

原来是 --master-data=1 导致的,但是必须是1才行。那就在rds新增 “高权限账号”,过程略过。

再次导出,正常。

后面,按照新增从库的操作即可。

其实,阿里云不建议自建rds的从库,具体:

https://developer.aliyun.com/ask/230807?spm=a2c6h.17698244.wenda.7.2c1f1407Xecj58

 当然,如果业务方面,当出现阿里云rds出现切换时,允许主从延迟、或者主从重建的话,也是可以的。

根据自己业务需要进行即可。

注意: 以下为增加rds从库时的新增内容

在导入数据完成,执行change master后。开启slave同步会报错。提示 找不到index.log

解决方式

stop slave;
reset master;
change master to master_host='rm-2.mysql.rds.aliyuncs.com',MASTER_PORT=3306,master_user='slave',master_password='123456',master_auto_position=1;
start slave;
show slave statusG;
当使用master_auto_position时,MASTER_LOG_FILE, MASTER_LOG_POS不能使用。

  

 

原文地址:https://www.cnblogs.com/xzlive/p/13994061.html