MySQL - バックアップ

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

データベースの破損に備えて、全てのデータを定期的にバックアップすることが重要である。

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のデータベースのバックアップと復元は簡単にできる。
バックアップにはエクスポート機能、復元にはインポート機能を使用する。

バックアップ

  1. phpMyAdminにアクセスして、画面左のディレクトリツリーから、バックアップしたいデータベースを選択する。
  2. 画面右のウィンドウにディレクトリ構造が表示される。(画面左のディレクトリツリーにおいて、メインデータベース以下の全てのアセットがハイライトされる)
  3. 画面上部にあるメニューから、[エクスポート] - [Export Method]を選択する。
  4. データベース全体をバックアップする場合は[クイック]、個々のデータベースおよびテーブル、その他の特別なオプションを選択する場合は[カスタム]を選択する。
    [フィールド]項目は、正当な理由がない限り、デフォルトのままにすること。
  5. [Go]を選択する。
    [クイック]を選択した場合は、データベースのコピーを指定したダウンロードディレクトリにダウンロードされる。


復元する前に

バックアップを復元する前に、古いデータを消去しておくことが重要である。
古いデータが存在する場合、復元する時に上書きされないため、テーブルが重複してしまい、エラーやコンフリクトが発生する可能性がある。

  1. phpMyAdminにアクセスして、画面左にあるナビゲーションペインから、復元するデータベースを選択する。
  2. 画面下部の[check all]チェックボックスを選択して、[With selected]プルダウンから[Drop]を選択する。
  3. 先に進むかどうかを確認するメッセージが表示されるので、[はい]ボタンを押下する。


復元

phpMyAdminでは、データベースの復元には、Importツールを使用する。

  1. phpMyAdminにアクセスして、画面上部のメニューから[インポート]を選択する。
  2. [インポートするファイル]項目の下に[コンピュータを参照する]項目があるので、[ファイルを選択する]ボタンを押下する。
  3. ファイル選択ダイアログから、復元するバックアップファイルを選択する。
    バップアップにおいて、オプションを使用している場合は、それを選択することができる。
  4. [Go]ボタンを押下する。