MySQL - バックアップ
ナビゲーションに移動
検索に移動
概要
データベースの破損に備えて、全てのデータを定期的にバックアップすることが重要である。
MySQLには、mysqldumpクライアントユーティリティが存在しており、データベースを再構築するために必要なSQLステートメントを含むデータベースをダンプすることができる。
ダンプファイルには、テーブルとデータを復元するためのSQLコマンドが含まれており、復元する時に役立つ。
バックアップ
1つのデータベースをバックアップする。
sudo mysqldump -u <ユーザ名> -p <データベース名> > <保存するファイル名>.sql # ホスト名またはIPアドレスを指定する場合 sudo mysqldump -h <ホスト名またはIPアドレス> -u <ユーザ名> -p <データベース名> > <保存するファイル名>.sql # 文字コードを指定する場合 sudo mysqldump -h <ホスト名またはIPアドレス> -u <ユーザ名> -p --default-character-set=utf8mb4 <データベース名> > <保存するファイル名>.sql # 特殊な文字が存在する場合の欠落を防ぐため、--hex-blobオプションでバイナリデータを16進数表記文字列に変換して出力する場合 sudo mysqldump -h <ホスト名またはIPアドレス> -u <ユーザ名> -p --default-character-set=utf8mb4 --hex-blob <データベース名> > <保存するファイル名>.sql
2つ以上のデータベースをバックアップする。
sudo mysqldump -u <ユーザ名> -p <データベース名 1> <データベース名 2> <データベース名 3> > <保存するファイル名>.sql # ホスト名またはIPアドレスを指定する場合 sudo mysqldump -h <ホスト名またはIPアドレス> -u <ユーザ名> -p <データベース名 1> <データベース名 2> <データベース名 3> > <保存するファイル名>.sql
MySQLに存在する全てのデータベースをバックアップする。
sudo mysqldump -u root -p --all-databases --single-transaction --quick --lock-tables=false > <保存するファイル名>.sql # ホスト名またはIPアドレスを指定する場合 sudo mysqldump -h <ホスト名またはIPアドレス> -u root -p --all-databases --single-transaction --quick --lock-tables=false > <保存するファイル名>.sql # 特殊な文字が存在する場合の欠落を防ぐため、--hex-blobオプションでバイナリデータを16進数表記文字列に変換して出力する場合 sudo mysqldump -h <ホスト名またはIPアドレス> -u root -p --hex-blob --all-databases --single-transaction --quick --lock-tables=false > <保存するファイル名>.sql
復元
mysqldumpを使用してダンプしたデータベースを、既存のMySQLに復元する。
sudo mysql -u <ユーザ名> -p <データベース名> < <ダンプしたファイル名>.sql # ホスト名またはIPアドレスを指定する場合 sudo mysql -h <ホスト名またはIPアドレス> -u <ユーザ名> -p <データベース名> < <ダンプしたファイル名>.sql
phpMyAdminを使用したバックアップと復元
phpMyAdminを使用している場合、MySQLのデータベースのバックアップと復元は簡単にできる。
バックアップにはエクスポート機能、復元にはインポート機能を使用する。
バックアップ
- phpMyAdminにアクセスして、画面左のディレクトリツリーから、バックアップしたいデータベースを選択する。
- 画面右のウィンドウにディレクトリ構造が表示される。(画面左のディレクトリツリーにおいて、メインデータベース以下の全てのアセットがハイライトされる)
- 画面上部にあるメニューから、[エクスポート] - [Export Method]を選択する。
- データベース全体をバックアップする場合は[クイック]、個々のデータベースおよびテーブル、その他の特別なオプションを選択する場合は[カスタム]を選択する。
[フィールド]項目は、正当な理由がない限り、デフォルトのままにすること。 - [Go]を選択する。
[クイック]を選択した場合は、データベースのコピーを指定したダウンロードディレクトリにダウンロードされる。
復元する前に
バックアップを復元する前に、古いデータを消去しておくことが重要である。
古いデータが存在する場合、復元する時に上書きされないため、テーブルが重複してしまい、エラーやコンフリクトが発生する可能性がある。
- phpMyAdminにアクセスして、画面左にあるナビゲーションペインから、復元するデータベースを選択する。
- 画面下部の[check all]チェックボックスを選択して、[With selected]プルダウンから[Drop]を選択する。
- 先に進むかどうかを確認するメッセージが表示されるので、[はい]ボタンを押下する。
復元
phpMyAdminでは、データベースの復元には、Importツールを使用する。
- phpMyAdminにアクセスして、画面上部のメニューから[インポート]を選択する。
- [インポートするファイル]項目の下に[コンピュータを参照する]項目があるので、[ファイルを選択する]ボタンを押下する。
- ファイル選択ダイアログから、復元するバックアップファイルを選択する。
バップアップにおいて、オプションを使用している場合は、それを選択することができる。 - [Go]ボタンを押下する。