AmazonでRDSインスタンスとして実行されているかなり大きなMySQL(5.1)データベースがあります。Amazonからの移行に取り組んでいます。それをスムーズに行うために、RDSインスタンスの読み取り専用レプリカとして新しいハードウェアをセットアップしたいと思います。
RDSがRDS内の複製をサポートしていることは知っています。RDSにないホストに複製するように構成する方法はありますか?
AmazonでRDSインスタンスとして実行されているかなり大きなMySQL(5.1)データベースがあります。Amazonからの移行に取り組んでいます。それをスムーズに行うために、RDSインスタンスの読み取り専用レプリカとして新しいハードウェアをセットアップしたいと思います。
RDSがRDS内の複製をサポートしていることは知っています。RDSにないホストに複製するように構成する方法はありますか?
回答:
RDSから外部mysqlスレーブに複製できるようになりました:http : //www.ruempler.eu/2013/07/07/replicating-aws-rds-mysql-databases-to-external-slaves/
Amazonは今のところこれを禁止することを選択しているようです:
https://forums.aws.amazon.com/thread.jspa?threadID=46377&tstart=0
次のシナリオがある場合
このように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
leopd@'xxx.xx.xx.xxxx 'をユーザーとして使用してCHANGE MASTER TOコマンドを実行します(xxx.xx.xx.xxxxはRDSのIPアドレスです)
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を実行します。新しいサーバー上
動作を開始するはずです。ファイアウォールの考慮事項について心配する必要がある場合があります。
試してみる !!!
あと1回しかチャンスがありません。これで最後の特権を設定できるかどうかを確認します。
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である必要があります。
GRANT REPLICATION SLAVE
結果はERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
SHOW GRANTS
。あなたは上のすべての権限を持っていますか。?
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD <snip> WITH GRANT OPTION
。Amazonはこれを許可していないようです。