Wenn Sie das folgende Szenario haben
- Alle Ihre Daten sind innodb
- Sie haben die binäre Protokollierung für RDS aktiviert
Sie können einen Benutzer in RDS wie folgt erstellen
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password';
Wenn Amazon '%' für den Hostnamen nicht zulässt, benötigen Sie eine bestimmte öffentliche IP-Adresse
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Als nächstes mysqldump die Daten aus RDS als einzelne Transaktion
mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql
Führen Sie den Befehl CHANGE MASTER TO mit leopd@'xxx.xx.xx.xxxx 'als Benutzer aus (xxx.xx.xx.xxxx ist die IP-Adresse von RDS).
CHANGE MASTER TO
master_host = 'xxx.xx.xx.xxxx',
master_port = 3306,
master_user = 'leopd',
master_passwowrd = 'repl_pass'
master_log_file='slsnbj',
master_log_pos=1;
Laden Sie die Daten auf einen neuen Server. Machen Sie sich keine Sorgen um master_log_file = 'slsnbj' und master_log_pos = 1. Zeile 22 des Dumps enthält die richtige Protokolldatei und Position.
START SLAVE ausführen; auf dem neuen Server
Es sollte funktionieren. Möglicherweise müssen Sie sich über Firewall-Überlegungen Gedanken machen.
Versuche es !!!
UPDATE 2012-03-23 17:11 EDT
Sie haben nur noch eine Chance. Sehen Sie, ob Sie dieses letzte Privileg folgendermaßen festlegen können:
UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
Möglicherweise wird dies für Benutzer blockiert, die% in der Hostspalte von mysql.user haben.
Möglicherweise müssen Sie einen anderen Benutzer mit einer festen öffentlichen IP-Adresse erstellen, wie ich zuvor vorgeschlagen habe
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Es ist möglich, dass Replikations-Slaves in RDS auch RDS sein müssen.