Если у вас есть следующий сценарий
- все ваши данные 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';
Затем mysqldump данные из 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 ПО ВОСТОЧНОМУ ВРЕМЕНИ
У вас есть только один шанс. Посмотрите, можете ли вы установить эту последнюю привилегию с помощью этого:
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.