2021/04/02
仕事で本番サーバーにあるDBのデータをローカルの開発環境で利用する機会がありました。
Laravelで開発する上でもシーダーでデータを入れるよりも、サーバーに同様のデータがあれば当然それを利用したほうがいいでしょう。
今回はDBのデータをダンプしたり、それをリストアするやり方についてエントリーします。
目的
本番サーバーにあるDBをローカルの開発環境で同じように利用する。
手順
【 1 】データベースをダンプする
sshで本番サーバーに接続します。
sshクライアントソフトは" Poderosa(ポデローサ) "を利用します。
サーバーに接続できたら"mysqldump"コマンドを実行します。
mysqldump -h ホスト名 -u ユーザー名 -p データベース名 > ダンプファイル名.sql
ホスト名はさくらサーバーの場合 "mysql***.db.sakura.ne.jp" になります。
WEBサーバーとDBサーバーが同じ場合は "localhost" になります。
オプションの "-h" はホスト名を指定しないといけないのでIPアドレスを指定しても上手くいきません。ただ、localhost の場合は "-h" を省略しても可。
上記のコマンドでデータベース丸ごとのダンプファイルがカレントディレクトリにできます。
テーブルごとにダンプデータをとる場合
mysqldump -h ホスト名 -u ユーザー名 -p -t データベース名 テーブル名 > ダンプファイル名.sql
【 2 】ダンプしたファイルをダウンロード
次にカレントディレクトリに出来たダンプファイルをローカルにダウンロードするのですが、これはscpコマンドを使います。
poderosaではscpを手軽るにできる仕組みが用意されているのでそれを利用します。
まずはツールバーにあるSCPというアイコンをクリックします。
ダンプしたファイルをダウンロードしたら削除します。
Laravel プログラマーがよく使う Linux コマンド(備忘録)
$ rm { ファイル名 }
# ワイルドカードも使えます。
# 冒頭に『1905』が付くファイル名を全部削除
$ rm 1905*.sql
【 3 】ダウンロードしたダンプファイルをリストア
poderosa の scp でダウンロードしたダンプファイルをリストアします。
XAMPP についている PhpMyAdmin でリストアしてもいいのですが、容量制限がかかっているのでコマンドプロンプトでリストアします。
コマンドプロンプトを起動して以下のコマンドを実行します。
# 構文
> mysql -u ユーザ名 -p データベース名 < ダンプファイル名.sql
# 実例
# ダンプファイルをCドライブ直下にあるtmpディレクトリに保存した場合
> mysql -u homestead -psecret laravel_db < C:\\tmp\\20210402laravel_db.sql
上記のコマンドを実行後、パスワードを入れたらリストア完了です。
以上です。
さくらのレンタルサーバ スタンダード
当サイトで実演 & 解説している Laravel のプログラムは「さくらのレンタルサーバー」の「スタンダード」プランの環境を前提にして解説しています。非常にコスパがよく利用者からも評価が高いサーバーです。もし、当サイトで解説している Laravel のチュートリアルを同じ環境で試して動かしてみたい方はおススメのサーバーです。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。