案件の保守対応で環境構築の際に
DB情報を用意されておらず
開発で利用していたサーバーから
DB情報を取ってきてローカルで反映させるために
今回行った内容を忘備録としてまとめておく。
余談ですが、ガチの現役エンジニアは本当にすごい
相談でちょいと質問したら悩んでいる原因を明確化(整頓)してもらった上で
回答を貰える
答えを教えるのは悪!とは言いませんが
考えもせずに答えを教えて貰うのと
なぜ悩んでいるのかを明確にしてもらってから教えてもらうとでは
理解度と腹落ち度が断然変わってきますね(о´∀`о)
それでは本題へ!
リモートサーバーのDB情報が欲しい
まずはリモートサーバーへログイン
sshで〜のくだりは別途調べてみて下さい!
ログインできたら次に
MySQLへのログインをして求めているDB情報があるのか確認をしよう!
$ mysql -u ユーザ名 -p
上記を入力してEnterを押すと
パスワードが求められるので入力してEnter
ログインができると[$]が[mysql>]に変わるのでそうなれば成功
mysql>
次にDB情報を一覧で確認する
mysql> show tables;
すると一覧で表示されるのでそのDBの名前を控えておく
もし必要であればテーブル情報も確認できるので参考にしてみて下さい
mysql> use db_name;
mysql> show tables;
そしたら次はそのテーブル情報をファイルにしていきます
mysql> quit //またはexit
mysql> show tables;
MySQLから抜けることが必要です!
自分はこれを知らずに
ずっとMySQL内でdumpしようとしてエラー出しまくってました
抜けたら次に
$ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME > OUTPUT_FILE_NAME
それぞれの必要項目が間違っていなければ
このコマンドを入力した階層内でファイルが作成されます
ここまででリモートサーバーでの作業は終わりなのですが
出る前に求めているファイルのパスだけ確認しておくとあとの作業が楽になりますね
ローカルでの作業
ローカルであればどこでもいいと思うのですが僕は今回デスクトップに
ファイルをダウンロードしてくる操作をしました
$ scp [オプション] [接続ユーザ]@ホスト名(IPアドレス):コピー元 コピー先
それぞれの情報を理解しておけばこちらもさくっと打って
ダウンロードができます!
終わったらDBをインポートさせるんですが
僕は今回、Sequel Proを使ってインポートをしたのですが
順番を間違えるとあれ?できない??ってなるので気をつけましょう!
- まずはDBを作っておく
- 作ったDBを選択しておく
- インポートが活性化されるので指定のファイルをインポート
これで今回求めていた作業が完了しました!
覚えてしまえば10前後で終えれそうな内容でしたね
ちなみに僕は1時間前後かかってましたので
時間を無駄にしないように気をつけましょう(о´∀`о)