LoginSignup
11
15

More than 5 years have passed since last update.

本番環境のデータをローカルに落としたい時に使うコマンドはこれだ【初心者向け】

Last updated at Posted at 2017-05-25

対象となる方々

  • あるバッチファイルを実行したいけど本番/STG環境で検証なんてこわくてできるわけがない。
  • でもローカル環境に入っているDBのデータ量がしょぼくて臨場感がない。
  • 自分のローカル環境をできる限り本番環境に近づけたい。

前提

  • Rails 5.0.0.1
  • MySQL 5.7

本番環境のDBをmysqldumpでダンプする

まずは本番環境のDBのデータをダンプ(データ等をまるごと記録すること)する必要がある。
ターミナルで以下のコマンドを叩く。作業ディレクトリにダンプファイルを置いたままにすると、git管理下に入ってしまうので、それを忘れたまんまコミットしようとすると恐ろしいことになる…なんてことはしないですよね…m(_ _)m

$ mysqldump -u user_name -h host_name -p --database database_name > file_name
$ Enter password: ここにパスワードを記入する
・・・・・・・・ダンプ実行が開始される・・・・・・・・・

ダンプが終わったら、そのファイルをローカル環境のDBにインポートする。

$ mysql -u user_name -p database_name < file_name
database_nameにはインポート先のデータベース名を指定する

scpコマンドを使う場合

linuxコマンドの一つ。ssh接続を介して、ファイルのアップロード/ダウンロードをすることができたりする。
https://webkaru.net/linux/scp-command/

これを使う場合は、本番サーバーにあらかじめダンプファイルが置いてあるという条件が必要。

ssh接続して本番サーバーに入り同じようにmysqldumpでダンプファイルを作成。
ただ、本番環境にあっても意味のないファイルのため、/tmp以下に作成するようにした方が良い。

ターミナル上のどこでも良いので、以下のコマンドを実行。ダウンロードが開始すれば、右端にファイル転送時間と容量を表示してくれる。

$ scp username@ipaddress:[ダウンロード元のパス] [ダウンロード先のパス]
hoge.sql                                 100%  540MB 337.5KB/s   27:18

usernameって何?と一瞬思ってしまったんですが、AWSとか使ってる場合はec2-userとかになりますね。
ipaddressは本番サーバーに割り当てられているIPアドレス(ホストネーム)をかけばOKのはずです。

11
15
1

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
11
15