Якщо у вас такий сценарій
- всі ваші дані є innodb
- у вас увімкнено бінарний журнал на RDS
ви можете створити користувача в RDS так
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password';
Якщо Amazon не дозволяє "%" для імені хоста, вам знадобиться специфічна загальнодоступна IP-адреса
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Далі, mysqld викиньте дані з RDS як єдину транзакцію
mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql
Запустіть команду CHANGE MASTER TO, використовуючи leopd@'xxx.xx.xx.xxxx 'як користувача (xxx.xx.xx.xxxx - 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;
Завантажте дані на новий сервер. Не хвилюйтесь про master_log_file = 'slsnbj' та master_log_pos = 1. У рядку 22 дампа буде правильний файл журналу та його положення.
Запустити START SLAVE; на новому сервері
Він повинен почати працювати. Можливо, вам доведеться турбуватися про міркування брандмауера.
Спробувати !!!
ОНОВЛЕННЯ 2012-03-23 17:11 EDT
У вас залишився лише один шанс. Перевірте, чи можете ви встановити останню привілей за допомогою цього:
UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
Можливо, це блокується для користувачів, які містять% у стовпчику хосту mysql.user.
Вам може знадобитися створити іншого користувача з жорстким загальнодоступним IP-адресом, як я запропонував раніше
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Можливо, раби реплікації в RDS також повинні бути RDS.