Jika Anda memiliki skenario berikut ini
- semua data Anda adalah innodb
- Anda mengaktifkan pencatatan biner pada RDS
Anda bisa membuat pengguna di RDS seperti ini
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password';
Jika Amazon tidak mengizinkan '%' untuk nama host, Anda akan memerlukan alamat IP publik tertentu
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Selanjutnya, mysqldump data dari RDS sebagai satu transaksi
mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql
Jalankan perintah CHANGE MASTER TO TO menggunakan leopd@'xxx.xx.xx.xxxx 'sebagai pengguna (xxx.xx.xx.xxxx adalah alamat IP 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;
Muat data ke server baru. Jangan khawatir tentang master_log_file = 'slsnbj' dan master_log_pos = 1. Baris 22 dari dump akan memiliki file dan posisi log yang benar.
Jalankan MULAI BUDAK; di server baru
Seharusnya mulai bekerja. Anda mungkin harus khawatir tentang pertimbangan firewall.
Cobalah !!!
UPDATE 2012-03-23 17:11 EDT
Anda hanya memiliki satu peluang tersisa. Lihat apakah Anda dapat mengatur hak istimewa terakhir dengan ini:
UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
Mungkin ini diblokir untuk pengguna yang memiliki% di kolom host mysql.user.
Anda mungkin perlu membuat pengguna lain dengan IP publik yang keras seperti yang saya sarankan sebelumnya
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Mungkin replikasi budak di RDS juga harus RDS.