環境構築

開発環境と本番サーバーのDBの同期について

2018/10/12

仕事で本番サーバーにあるDBのデータをローカルの開発環境で利用する機会がありました。

Laravelで開発する上でもシーダーでデータを入れるよりも、サーバーに同様のデータがあれば当然それを利用したほうがいいでしょう。

今回はDBのデータをダンプしたり、それをリストアするやり方についてエントリーします。

 

目的

本番サーバーにあるDBをローカルの開発環境で同じように利用する。

 

手順

【 1 】データベースをダンプする
【 2 】ダンプしたファイルをダウンロード
【 3 】ダウンロードしたダンプファイルをリストア

 

【 1 】データベースをダンプする

sshで本番サーバーに接続します。

sshクライアントソフトは" Poderosa(ポデローサ) "を利用します。

Poderosa

サーバーに接続できたら"mysqldump"コマンドを実行します。

 
 mysqldump -h {ホスト名} -u {ユーザー名} -p {データベース名} > {ダンプファイル名}.sql
 
【解説】
ホスト名はさくらサーバーの場合"mysql***.db.sakura.ne.jp"になります。
WEBサーバーとDBサーバーが同じ場合は"localhost"になります。
オプションの"-h"はホスト名を指定しないといけないのでIPアドレスを指定しても上手くいきません。
ユーザー名とこのコマンドのあとに入力するパスワードはMySQL用のユーザーとパスワードです。
sshで接続するアカウントとパスワードではありません。
ダンプファイル名はなんでもOKです。

上記のコマンドでデータベース丸ごとのダンプファイルがカレントディレクトリにできます。

テーブルごとにダンプデータをとる場合は

 
 mysqldump -h {ホスト名} -u {ユーザー名} -p -t {データベース名} {テーブル名} > {ダンプファイル名}.sql
 

となります。

 

【 2 】ダンプしたファイルをダウンロード

次にカレントディレクトリに出来たダンプファイルをローカルにダウンロードするのですが、これはscpコマンドを使います。

poderosaではscpを手軽るにできる仕組みが用意されているのでそれを利用します。

まずはツールバーにあるSCPというアイコンをクリックします。

【 補足説明 】
ダンプしたファイルをダウンロードしたら削除します。

 
 rm { ファイル名 }
 

 

【 3 】ダウンロードしたダンプファイルをリストア

poderosa の scp でダウンロードしたダンプファイルをリストアします。

XAMPP についている PhpMyAdmin でリストアしてもいいのですが、容量制限がかかっているのでコマンドプロンプトでリストアします。

コマンドプロンプトを起動して以下のコマンドを実行します。


# ダンプファイルをCドライブ直下に保存した場合です。
> cd C:\
> mysql -u { user_name } -p { db_name } < { dumpfile.sql }

上記のコマンドを実行後、パスワードを入れたらリストア完了です。

以上です。

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。

 

-環境構築