废话不多说,直接开搞。
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 status\G;
当使用master_auto_position时,MASTER_LOG_FILE, MASTER_LOG_POS不能使用。