WordPressのデータベースは、どんどん増えていきます。

増える要因は、記事の追加やプラグインによるデータの増加によるものです。

記事の追加で、データが増えるのは、わかると思います。

でも、プラグインでもデータが増えることがあります。

例えば、記事のランキングを表示してくれるプラグインなどを使った場合、日々のアクセスデータをデータベースに蓄えることがあります。そのため、データベースはどんどん増えていきます。

さて、WordPressの引っ越しとか、万一のためにデータベースをバックアップしたいことがあると思います。

バックアップするために、プラグインを導入するのは最も簡単ですが、最新のバックアップは、思い立った時にするしかありません。

バックアップする方法で最もお手軽なのは、phpMyAdminを使ってバックアップする方法です。

グラフィカルなユーザーインターフェイスでバックアップもわかりやすいです。

データベースのテーブルを選択して、ダウンロードボタンを押せばパソコンに保存ができます。

しかし、大量のデータベースだと途中でエラーが出てしまいバックアップすることができません。

こういう場合にどうするかですが、いくつか方法があります。

データベースのバックアップ方法

1、サーバーから直接ダウンロードする

データベースが格納されているサーバーから、直接ダウンロードします。

これは、レンタルサーバーのデータベースの管理画面などにあらかじめ用意されていることがあります(例えば、core-server)。

また、レンタルサーバーによっては、FAQなどにFTP経由でデータベースにアクセスする方法が書かれている場合もあります。

2、mysqlにログインして、ダンプする

SSHによるアクセスが許可されている場合なら、SSHでログインして、直接コマンドをたたいてデータベースをダンプすることができます。SSHにログインするツールはTera Termがもっとも有名で使いやすいです。

SSHにログインしたら、

mysql -u ユーザー名 -p

でエンターキーを押します。

*core-serverの場合はデータベース名がユーザー名。

すると、

Enter password:パスワード

と表示されるので、パスワードを入力します。

そうしたら、

mysqldump -u ユーザー名 -p データベース名 > backup.sql

と入力しエンターキーを押します。

もし、この時

mysqldump: Got error: 1044: Access denied for user ‘username’@’localhost’ to database ‘information_schema’ when using LOCK TABLES

という1044エラーが出た場合、テーブルがロックされているのでロックをはずす必要があります。

ただ、このロックは、root権限じゃないとはずせません。

ですので、その場合は、

mysqldump –single-transaction -u ユーザー名 -p データベース名 > backup.sql

*single-transactionの前の-は2つ。
*コアサーバーの場合なら、ユーザー名とデータベース名は同じ。拡張子がdumpの.dumpファイルは変換が必要なため使えない。

とすることで、ロックをはずさないでバックアップをとることができます。

バックアップができたら、FTPクライアントソフトでダウンロードするだけです。

3、phpMyAdminでこまめのデータベースを保存する

phpMyAdminでは、大量のデータベースはダウンロードできませんが、テーブルごとにこまめにダウンロードすることはできます。

具体的には、容量の小さなテーブルはまとめてダウンロードして、大きなものは単体でダウンロードします。

単体でダウンロードしてもエラーが出る場合には、オプションのデータの「作成するクエリの最大長」を小さくしてみてください。デフォルトは、50000になっていますが、小さくすることでうまくいく場合があります。

まとめ

データベースをバックアップすることは、とても大事です。

上記のような方法を使えば、大容量のデータベースでもバックアップが可能です。

できれば、定期的にバックアップできるようなプラグインを導入して、大きな変更をする前後には、全データベースをバックすることがおすすめですす。

また、可能ならば、WordPressとデータベースを別々のサーバーに置くとよいでしょうね。

こうやっておくと、WordPressの引越しの時、データベースの移動が不要なので超楽になります。