LoginSignup
1
1

More than 3 years have passed since last update.

mysqldumpでDB移行した際のコマンド

Posted at

先日、ステージング環境がAmazon EC2からGCEへ移行されました。その際、データベースの移行をしたので手順を書いていきます。

EC2にssh接続

$ ssh -i 使用する鍵のパス ユーザ名@接続先のIPアドレス

例)
$ ssh -i ~/.ssh/hoge.pem ec2-user@xx.xx.xx.xx

DBをdumpする

ssh接続ができたら

[ec2-user@ip-xxx ~]$ mysqldump -u ユーザー名 -p -h DBホスト DB名 > 保存したいファイル名

例)
[ec2-user@ip-xxx ~]$ mysqldump -u hoge -p -h hoge.rds.amazonaws.com  hoge_staging > hoge_staging.dump

そしてパスワードを聞かれるのでパスワードを入力すればdumpファイルがEC2上に作成されます。ここまでできたらEC2からはログアウトしてください。
ユーザー名等は自分のDB設定ファイルを参照してください。Railsならdatabase.ymlです。

EC2上に作成したdumpファイルをローカルへコピー

$ scp -i 使用する鍵のパス ユーザ名@接続先のIPアドレス:EC2上のコピー元のファイルのパス ローカルのコピー先のパス

例)
$ scp -i ~/.ssh/hoge.pem ec2-user@xx.xx.xx.xx:/var/www/foo/bar/hoge_staging.dump /Users/mishikun/workspace/

これで、EC2上で作成したdumpファイルを手元のPCのworkspace配下まで持ってくることができました。次は移行先のGCEにこのファイルを持っていきます。

移行先ににdumpファイルを送信

sftpを使って送信します。

$ sftp -i 使用する鍵のパス ユーザ名@接続先のIPアドレス

sftpができたらputコマンドでローカルにあるdumpファイルをGCEに送ってあげましょう。場所は適当です。私はホームディレクトリに送信しました。

GCEにssh接続

GCEにssh接続します。コマンドは上記と同様なので割愛させていただきます。

移行先DBにdumpをインポート

[xxx@xxx ~]$ mysql -u ユーザ名 -p -h DBホスト dumpをインポートしたいDB名 < dumpファイルのパス

例) 
[xxx@xxx ~]$ mysql -u hoge -p -h xx.xx.xx.xx hoge_staging < ~/hoge_staging.dump

これでDBの以降は完了です✌️
もし間違い等があればご指摘のほどよろしくお願いします。

参考

MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.5.4 mysqldump — データベースバックアッププログラム
scpコマンド チートシート - Qiita

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1