みなさんこんにちは!いっちーです!
今回は「MySQLのバックアップの取り方に関して」というテーマです。
みなさんは業務 or 個人開発でDBのバックアップをとっていますか?
突然DBが消え去ったけどバックアップを取ってないから復旧できない\(^o^)/オワタ
とならない様に、定期的にバックアップを取得しておくことは大切です。
「転ばぬ先の杖」としての2通りのバックアップの取り方をこの記事で紹介します。
DBクライアントを使用する方法
まず紹介するのはSequel Pro, MySQL WorkbenchなどのDBクライアントの、
エクスポート機能を使用してバックアップを作成する方法です。
GUI経由で操作できるのでコマンド操作に慣れていない方にとってはとっつきやすい方法となります。
Sequel Proを例にとると、
ファイル > エクスポート > 設定を確認してエクスポートボタンを押す
上記の手順で簡単にバックアップファイルを作成することができます。
mysqldumpコマンドを使用する方法
mysqldumpコマンドを使用することでもバックアップを作成することができます。
DBクライアントを使用した方がGUIだけなので楽なのですが、
バッチなどGUIが使用できない場合ではこちらの方法を使用します。
以下の様なコマンドでdumpファイルを生成します。
mysqldump --add-drop-table --disable-keys --extended-insert --skip-column-statistics -u <ユーザー名> -p -h <ホスト名> -P <ポート番号> <DB名> > <出力するファイル名>
使用しているオプションの意味は以下になります。
オプション | 意味 |
–add-drop-table | DROP TABLE ステートメントを CREATE TABLE ステートメントの前に追加 |
–disable-keys | 各テーブルについて、キーを無効にするステートメントおよび有効にするステートメントでINSERTステートメントを囲む |
–extended-insert | 複数のVALUESリストを含む、複数行INSERT構文を使用 |
–skip-column-statistics | mysqldump8以降でそれ以前 (5.7など)のMySQLサーバに対してダンプを実行した場合のエラーを回避するためのオプション |
-u | MySQLユーザー名 |
-p | パスワード |
-h | 接続先のホスト |
-P | ポート番号 |
DBクライアントを使用してDBを復元する方法
ここからはバックアップを取得したけど、どうやって復元するの?という疑問に答えていきます。
またまたSequel Proを例にとって説明します。以下の手順で簡単にバックアップを復元することができます。
ファイル > インポート > ファイルを指定して開く
あとはSequel Proが作業をしてくれます。DBクライアント様様です!
コマンドを使用してDBを復元する方法
コマンドを使用してDBを復元する方法も解説します。
以下の様なコマンドでdumpファイルから復元することができます。
mysql -u <ユーザー名> -p -h <ホスト名> -P <ポート番号> <DB名> < <ダンプファイルのパス>
エラーがなければDBが復元されています。
終わりに
今回はMySQLのバックアップの取り方に関してというテーマに関して解説しました。
DBクライアントを使用する方法とコマンドを使用する方法を紹介しましたが、
状況に応じて使い分けてみてください。
何か事件があるその前に、「転ばぬ先の杖」として定期的なバックアップをお勧めします。
それでは!
コメント