使用RDS服務的slave轉成EC2
但在RDS中 我們所使用的root並不是最高權限
無法使用stop slave;
AWS官方提到有另外一個語法
mysql> CALL mysql.rds_stop_replication;
確認並記錄目前的主從進度(最後會使用到)
show slave status\G;
RDS的mysql 裡面有多這七張表是mysql預設沒有的
rds_configuration rds_global_status_history rds_global_status_history_old rds_heartbeat2 rds_history rds_replication_status rds_sysinfo
因此要先將這七張特殊表dump出來
mysqldump -uroot -p -hRDS-master連結位置 mysql rds_configuration rds_global_status_history rds_global_status_history_old rds_heartbeat2 rds_history rds_replication_status rds_sysinfo > /root/RDS-mysql.sql
再dump出 排除系統庫四個系統庫的所有資料
mysql -e "show databases;" -uroot -p -hRDS-master連結位置| grep -Ev "Database|information_schema|innodb|performance_schema|mysql" | xargs mysqldump -uroot -p -hRDS-master連結位置 --databases > /root/RDS.sql
再將sql 倒進EC2 安裝的mysql裡
mysql -uroot -p mysql < /root/RDS-mysql.sql mysql -uroot -p < /root/RDS.sql
指進度即完成主從
CHANGE MASTER TO MASTER_HOST='RDS-master連結位置', MASTER_USER='主從帳號', MASTER_PASSWORD='主從密碼'; <----跟隨RDS-master CHANGE MASTER TO MASTER_LOG_FILE = 'bin-log檔名',MASTER_LOG_POS =進度; start slave; show slave status\G;