XAMPP の mysql バックアップ・リストア方法3つ

XAMPP

WordPress 等を Windows などローカルな環境でテストするには XAMPP が便利やね。
Apache + PHP + Perl + Tomcat + MySQL + phpMyAdmin の環境を、一般的な Windows アプリケーションと同等の簡単インストールで一発ポンッで構築できちゃう。

まぁ、個人的に普段は、Linux(Gentoo)に Apache + PHP + Perl + MySQL で Web環境を構築してるので、XAMPP を使う機会は少ないけどねw

ちなみに、Tomcat(JSP や Java Servlet 用の環境)はイラネー。昔は仕事で Tomcat 使ってたけど、PHP 全盛の時代になってしまったので、かれこれ10年くらい Java Servlet など触ってない。

mysql のバックアップ

前置きが長くなったが、ここから本題。
XAMPP で WordPress 等をテストして、色々いじってると、MySQL のバックアップは必須になる。
バックアップの仕方は以下の3つがあるので、適宜、必要な方法をとれば良い。

  1. MySQL の data フォルダを丸々コピーする
  2. phpMyAdmin の エクスポート機能でデータベースをエクスポートする
  3. mysqldump コマンドで sql ファイルとしてダンプする

data フォルダを丸々コピーする

一番簡単な方法。

念のため、MySQL を停止した上で、
XAMPP をインストールした場所(通常は C:\xampp\ )の下にある以下のフォルダ

C:\xampp\mysql\data

を丸々コピーしちゃう。

MySQL 停止

MySQL の data フォルダをコピー

リストアはコピーしたフォルダを元に戻すだけ。
手っ取り早くて、簡単な方法だけど、ホスティングサービスなどで本番環境を構築してる場合、そっちへ移行することが出来ないのが難点。

phpMyAdmin の エクスポート機能でデータベースをエクスポートする

これも簡単。

phpMyAdmin で SQL ファイルをエクスポートするだけ。

XAMPP の Admin ボタン押す

phpMyAdmin でエクスポート

リストア方法は、上記画面の右にあるインポートで元に戻すだけ。

ホスティングサービスなどの本番環境にインポートするつもりなら、エクスポートするファイルは
「詳細 – 可能なオプションをすべて表示」で必要なDBだけ選択すること。

mysqldump コマンドでダンプする

個人的にはコマンドラインに慣れていて、むしろ phpMyAdmin が非常に使いづらい。
なので、この方法が一番好き。
汎用性も高い。

XAMPP でシェルを開く

コンソールを開いたら、以下のコマンドを打つ

mysqldump --lock-all-tables -u root -x データベース名 > dump.sql

–lock-all-tables はテーブルをロックするオプション。念のため付けておいた方が良い。
dump.sql はダンプファイル名なので、自由に。

全データベースをバックアップするなら。

mysqldump --lock-all-tables -u root -x --all-databases > dump.sql

また、MySQL にパスワードを設定している場合は、-p オプション付ける。

mysqldump --lock-all-tables -u root -p -x --all-databases > dump.sql

リストア方法は、

mysql -u root < dump.sql

本番環境にリストアするなら、

mysql -u ユーザー名 -p < dump.sql

以上でござる。