私は、EC2で実行されているMySQLから新しいAmazon RDSインスタンスに既存のデータベースを移動しようと試みました(移動できるかどうかを確認するための実験)。これまでのところ、うまくいきません。レプリケーションをセットアップする前に、最初のインポートで立ち往生しています(手順はこちら)。
前述のようにRDSインスタンスを準備し、mysqlを使用してEC2インスタンスから接続できます。mysqldumpコマンドを次のように実行しました。
mysqldump --master-data --databases db1 db2 > dump.sql
次に、次を使用してRDSにアップロードしようとしました。
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
最初の問題は、ダンプの22行目にありました。
マスターをMASTER_LOG_FILE = 'mysql-bin.000002'に変更し、MASTER_LOG_POS = 106;
この行によりエラーが発生しましたERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
。問題ありません。その行をコメントアウトして、後でmysql.rds_set_external_master()で修正したいと考えています。アップロードを再試行しましたが、非常によく似たエラーが発生しました:ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
。行7844の周りのセクションは次のようになります。
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`dev`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `jos_contributor_ids_view` AS select `jos_resource_contributors_view`.`uidNumber` AS `uidNumber` from `jos_resource_contributors_view` union select `jos_wiki_contributors_view`.`uidNumber` AS `uidNumber` from `jos_wiki_contributors_view` */;
最初の2行をコメントアウトし、3行目に「CREATE」を追加することで、この1行を超えることができました。しかし、このようなセクションはたくさんあります。すべての編集なしでこれを回避する方法はありますか?mysqldump
SUPER特権を必要とするものを作成しないオプションのように?
sed
mysqldump / mysqlbinlogの出力に対して実行する必要があるなど、多くの人が同様の問題を抱えているようです。私もAWSフォーラムに投稿します-実際には、RDSにはmysqldumpからインポートするより寛容な方法、または既存のdbに対して実行してRDSセキュリティに問題があるダンプを作成できる特定のツールが必要だと思います。誰かがここで役立つかもしれない他のレシピやトリックを持っているかどうか疑問に思いました。
おかげで、
デイブ
--masterdata=2
。この行はダンプ内でコメント化されます。
log_bin_trust_function_creators
1にパラメータを、まだラインで7844.同じエラーを取得する