#現場でやったことの備忘録
#DBをdumpとは
DBのバックアップを取るということ。
DBの中身をファイルに書き出す。
#①まずSSH接続
poderosaから本番サーバーに接続する。
EIPに接続し、秘密鍵認証で入った。
###補足
*SSH:暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。
*SSHの認証方式:パスワード認証方式と公開鍵認証方式がある
*パスワード認証方式:パスワード認証方式はデフォルトの認証方式で、ユーザー名とパスワードでログインする方式。
ユーザー名とパスワードは接続先OSのユーザーアカウントの情報が使用される。
*公開鍵認証方式:公開鍵認証方式は公開鍵と秘密鍵の2つの鍵(キーペア)を使用した接続方式。
サーバーに公開鍵、クライアントに秘密鍵を置いて使用する。
公開鍵認証を使うとパスワード入力なしでログインする事が可能になる。
*EIP:Elastic IPアドレスは、AWSに登録したアカウントに紐つけされるIPアドレス。
IPアドレスは基本的にパブリックIPアドレスとプライベートIPアドレスの2つに分けることができ、パブリックIPアドレスはインターネットを通じて機器を利用する際に割り当てられるアドレスで、最もポピュラーなIPアドレスと言えます。
一方のプライベートIPアドレスはインターネットではなくローカルのネットワークでのみ割り当てられるIPアドレスで、インターネットからは遮断されたIPです。
#②DBをdump
$mysqldump -u ユーザー名 -p -h ホスト名 DB名 > ファイル名
で、パスワード入力を求められたら入力(パスワードがなければ、コマンドの-pはいらない)
上記コマンドで、指定したDBから、バックファイルを「>」でファイルに書き込む。
*オプション(-u:ユーザ名、 -p:パスワード, -h:ホスト名)はdatabase.ymlに書いてある。
*msyqldump はリモート接続も出来るので、わざわざdbサーバーまで行く必要がなくなる。
#③WINSCPでファイルを安全に移動させる(本番⇨ローカルへ)
WINSCPにWEBサーバーを接続。
①で入ったのはWebサーバー(public)で、webサーバーからリモート接続してDBをdumpしてた感じ。
なので今回もWebサーバー(public)に接続。
*接続するIP,秘密鍵認証を間違えないように
で、接続できたらドラッッグ&ドロップで本番からローカルへファイルを移す。
WINSCP:ローカルコンピューターとリモートコンピュータ間で安全にファイルをコピーできるオープンソースプログラム。
#ローカル⇨仮想環境へ
WINSCPで仮想環境に接続。*IP、パスワード入れて接続
ドラッグ&ドロップでファイル移動。
#④リストア(バックアップファイルを復元ってこと)
mysql> create database DB名; ⇦DB作成
mysql> show databases; ⇦DBをできてるか確認
$mysql -u root DB名 < ファイル名 ←本番でdumpしたファイルの中身をDBに流す。矢印の向きに注意!
database: DB名 ←DBの向け先を指定(作成したやつ)
上記で本番DBでdump(バックアップ)したDBをローカルに持って来れます。