Se hai il seguente scenario
- tutti i tuoi dati sono innodb
- la registrazione binaria è abilitata su RDS
potresti creare un utente in RDS come questo
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password';
Se Amazon non consente '%' per il nome host, sarà necessario un indirizzo IP pubblico specifico
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Quindi, mysqldump i dati da RDS come un'unica transazione
mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql
Esegui il comando CHANGE MASTER TO utilizzando leopd@'xxx.xx.xx.xxxx 'come utente (xxx.xx.xx.xxxx è l'indirizzo IP di 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;
Carica i dati in un nuovo server. Non preoccuparti di master_log_file = 'slsnbj' e master_log_pos = 1. La riga 22 del dump avrà il file di registro e la posizione corretti.
Esegui START SLAVE; sul nuovo server
Dovrebbe iniziare a funzionare. Potrebbe essere necessario preoccuparsi delle considerazioni sul firewall.
Provaci !!!
AGGIORNAMENTO 2012-03-23 17:11 EDT
Ti resta solo una possibilità. Vedi se riesci a impostare l'ultimo privilegio con questo:
UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
Forse questo è bloccato per gli utenti che hanno% nella colonna host di mysql.user.
Potrebbe essere necessario creare un altro utente con un IP pubblico difficile, come ho suggerito in precedenza
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
È possibile che anche gli slave di replica in RDS debbano essere RDS.