Wordpressのデータベースをバックアップする

公開日| 2010年11月16日   更新日| 2012年9月14日   コメントはありません。

今回は、データベースのバックアップです。
Wordpressは、通常、MySQLを使ってますから、データベースのバックアップは、単純にMySQLのバックアップということになります。

では、早速、簡単に解説してみます。

データベースを丸ごとバックアップ

MySQLのバックアップには、バイナリダンプ(mysqlhotcopy)とSQLダンプ(musqldump)があります。
一般的によく利用されるものは、後者です。

前者のバイナリダンプでは、TABLE LOCKなどの一時的なMySQLの停止処置が必要で、初級者には、少し面倒です。また、mysqlhotcopyを実行するホストでmysqlが動作している必要があります。

後者は、厳密には、同じような処置が必要ですが、一般的には、MySQLを意識的に止めることはありません。すべては、musqldumpの中で実施します。

ここでは、後者を利用してバックアップを作成してみましょう。

$ mysqldump -hzzzz -uxxxx -pyyyy nnnn   > ffff
zzzz:mysqlのホスト名 ログインしたサーバーと同じ場合は、”localhost”でOK
※XREAの場合は、localhostなので、-hzzzz は省略可です。
xxxx:mysqlのユーザ名
yyyy:mysqlのパスワード
nnnn:mysqlのデータベース名
ffff:バックアップしたいファイル名(カレントディレクトリにない場合は、フルパスで指定します。)

以下は、例です。
mysqlが動作しているホスト:100.100.100.100 IPアドレスでもホスト名でも可。
mysqlのユーザ名:hoge
mysqlのユーザパスワード:passwordhoge
mysqlのデータベース名:hogedb
mysqlのバックアップファイル名:hoge.sql

$ mysqldump -h100.100.100.100 -uhoge -ppasswordhoge hogedb   > hoge.sql

また、合わせてgzipで圧縮したいなら、

$ mysqldump -h100.100.100.100 -uhoge -ppasswordhoge hogedb | gzip  > hoge.sql.gz

とすれば、gzipで圧縮してくれます。

テーブルごとにバックアップ

先のデータベース丸ごとバックアップと同様に、各テーブルごとにバックアップを作成することもできます。
レンタルサーバーでは、データベース数が限られている場合も多く、1つのデータベースに複数のサイトテーブルを作成している場合もあると思います。

その場合は、テーブルごとにバックアップすればOKですね。

$ mysqldump -hzzzz -uxxxx -pyyyy nnnn t1 t2 ....   > ffff
t1 t2 …. : t1,t2 それぞれテーブル名になります。半角空白をはさみ、複数指定できます。
簡単ですね。

テーブル名がわからないときは、mysqlで出力できます。
$ mysql -hzzzz -uxxxx -pyyyy -Dnnnn
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6268702
Server version: 5.1.22-rc Source distribution
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> show tables like 'wp_%';
+-----------------------+
| Tables_in_b3d         |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
11 rows in set (0.00 sec)
 
mysql> 
zzzz:mysqlのホスト名 ログインしたサーバーと同じ場合は、”localhost”でOK
xxxx:mysqlのユーザ名
yyyy:mysqlのパスワード
nnnn:mysqlのデータベース名

とこんな感じで出力できます。これを単純にバックアップしたいテーブル名を追加しれば良いだけですね。

バックアップした状態に戻す

一般にバックアップしたときの状態に、データベースを戻すことをリストアといいます。
ここでは、単純に先に記述したようなバックアップファイルから、リストアする方法を記述します。

$ mysql -hzzzz -uxxxx -pyyyy -Dnnnn < ffff
zzzz:mysqlのホスト名 ログインしたサーバーと同じ場合は、"localhost"でOK
※XREAの場合は、localhostなので、-hzzzz は省略可です。
xxxx:mysqlのユーザ名
yyyy:mysqlのパスワード
nnnn:mysqlのデータベース名
ffff:バックアップしたファイル名(カレントディレクトリにない場合は、フルパスで指定します。)

以下は、例です。
mysqlが動作しているホスト:100.100.100.100 IPアドレスでもホスト名でも可。
mysqlのユーザ名:hoge
mysqlのユーザパスワード:passwordhoge
mysqlのデータベース名:hogedb
mysqlのバックアップファイル名:hoge.sql

$ mysql -h100.100.100.100 -uhoge -ppasswordhoge -Dhogedb   < hoge.sql

また、合わせてgunzipで解凍したいなら、

$ gunzip < hoge.sql.gz | mysql -h100.100.100.100 -uhoge -ppasswordhoge -Dhogedb

とすれば、gunzipで解凍した上で、リストラしてくれます。

ざっと、こんな感じです。
Wordpressのデータベースは、基本的にテーブル名の先頭にwp_が付きますから、もし、テーブル名がまったくわからないようなら、wp_の付いたテーブルを探してみてください。


コメント

口コミ・評判を投稿 :

ブラウザの JavaScriptが無効となっている場合、コメントの投稿はできません。
コメントを投稿するには、JavaScriptを有効にしてください

お名前 *

メールアドレス *
(口コミ・評判欄には、表示されませんが入力が必要です。)

サイトアドレス



  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ