mysqlのエクスポート RDSへインポート | idealive tech blog
【ターミナル(Linux,Mac)】scpコマンドでサーバとファイルのやり取りをする - Qiita
・mysqlテーブル単位のエクスポート
mysqldump -u ユーザー -p データベース名 -t テーブル名 > エクスポートファイル名.sql
mysqldump -u ユーザー -p データベース名 -t テーブル名 --where="SQLの条件を記述(例udate < '2019-01-01 00:00:00')" > エクスポートファイル名.sql
Cloud9の storage/logs 配下にでも一時的にファイルをアップロード
mysql -h RDSのエンドポイント -P 3306 -u ユーザー名 -p データベース名 < インポートファイル.sql
10万件が1秒ほどのINSERT時間だった
具体的な手順
1. 本番DBに接続可能なサーバに入る
cd ~
2. mysqldump -u usernonamae -p -h xxxx.xxxxxx.ap-northeast-1.rds.amazonaws.com dbnonamae tablenonamae -w "jyouken>255 and jyouken<50000" > dumpfilenonamae.sql
3. DBパスワードを入力
4. dumpを取得したサーバに接続可能な開発サーバに入る
cd ~
5. scp -i "~/key/kaginonamae.pem" ec2-user@xx.xx.xx.xx:/home/ec2-user/dumpfilenonamae.sql /home/ec2-user/
6. vimで、DROP TABLE や CREATE TABLE など、LOCK TABLESより上を削除
7. Ctrl + G
UNLOCK TABLES;より下も削除
5dd
8. mysql -h test-xxxxx-xxxxx.xxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u usernonamae -p dbnonamae < dumpfilenonamae.sql
9. DBパスワードを入力
10万件レベルであれば、1秒で終わる
1000万件レベルのインポートになると数分かかった。