2016-06-17 4 views
2

ノアクラウドサーバーからAmazon MySQL RDSサーバーに30GBサイズの運用データベースを移行しています。EC2インスタンスからAmazon MySQL RDSにバイナリログファイルを復元する際に、次のエラーが表示される:「ERROR 1227(42000)at 8:Access denied」

稼働停止時間を短縮するために、私たちは、Amazon DB RDSサーバーのDB上に完全なDBダンプファイルを1日に、バイナリログファイルを別の日に復元しようとしています。

MySQLダンプファイルを移動することによって、EC2インスタンスを通じてフルダンプファイルを復元しました。

ERROR 1227 (42000) at line 8: Access denied; you need (at least one of) the SUPER privilege(s) for this operation.

注:私たちは、Amazon EC2インスタンスからバイナリログファイルを復元しようとすると、しかし、我々は次のエラーを取得している当社では、GoogleをしたとAmazon MySQLのパラメータlog_bin_trust_function_creators=1を変更し、サーバーを再開しました。

しかし、私たちはまだ上記の問題に直面しています。

答えて

4

ここでの問題は、RDSではログファイルの再生にmysqlbinlogを使用することがサポートされていないことです。

出力で最初にBINLOG '...ステートメントが発生すると、これらのイベントは完全に特権のあるコンテキストで解釈されるため、アクセス拒否エラーが発生します。イベントの処理時に特権チェックは行われません。先に完了した - BINLOG '...ステートメントを実行しているユーザーに、特権があることを要求することによって、RDSを使用して取得することはできません。

しかし、回避策がありますが、これは最終的にはさらに優れている可能性があります。

ダンプファイルを復元した後、実際にはRDSマスタをRDS外のMySQLサーバに接続し、一時的にマスタを外部データベースのスレーブにすることができます。外部マスターをシャットダウンしてアプリケーションがRDSマシンを指すように移動するまで、バイナリログを接続し、通常のスレーブのように再生し、データをほぼリアルタイムで外部マスターに同期します。

これらの機能は、特に、稼動中の外部システムを最小のダウンタイムでRDSに移行する目的で導入されました。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html

https://aws.amazon.com/blogs/aws/migrate-mysql-data-to-amazon-rds-and-back/

+1

優れた答えを。上記を共有していただきありがとうございます。 – Drew

+0

は答えミを共有していただきありがとうございますチャエル。しかし、私は既存のMySQLサーバネットワークを使って複製を行うことはできません.MySQLサーバに接続するための複製を行うための制限があるためです。 RDSにmysqlbinlogファイルを実行する可能性はありますか? –

+0

バイナリログをサーバーから取得できる場合、そのサーバーからレプリケートできるはずです。それはあなたが1つを得るのに十分な特権を持っているが他のものを持っていないことは意味をなさない。 –

1

私は同じ問題を満たしていたが、私は(ダンプSQLファイルに(あなたが復元するために使用するIDを言及)DEFINER IDを変更/ *!50013 DEFINER = RESTOREID% @ SQL SECURITY DEFINERの*/

は、その後、それは仕事を始めた!

関連する問題