[WordPress General] MySQLコマンドラインでDBバックアップ

引っ越しやバックアップなど、phpMyAdminなしでインポート・エクスポートする方法。

WordPressのテーブル名を確認する

$ mysql -u <mysqlのユーザー名> -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
# 省略
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wp_blog            |
+--------------------+
2 rows in set (0.00 sec)
mysql> exit

wp_ではじめている方が多いかもしれません。

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

mysqldump --add-drop-table -h <mysqlのサーバ名> -u <mysqlのユーザ名> -p <wordPressのデータベース名> | bzip2 -c > blog.bak.sql.bz2

バックアップをコピー(SCP)する

新しいサーバにログインして、バックアップファイルを SCP でコピーしてきます。

% scp <古いサーバのユーザー名>@oldserver.jp:~/blog.bak.sql.bz2 ./
blog.bak.sql.bz2                              100%  590KB 590.4KB/s   00:00

バックアップファイルからの復元

バックアップファイルを展開します。

% bzip2 -d blog.bak.sql.bz2

インポートをするデータベースを作成します。

% mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
# 省略
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database wp_blog;
Query OK, 1 row affected (0.00 sec)
mysql> exit

インポートします。

% mysql -h <mysqlのサーバ名> -u <mysqlのユーザ名> -p <mysqlのデータベース名> < blog.bak.sql
Enter password:

補遺

WordPress コンテンツの移動

元のサーバで tar にまとめる。-p オプション付きでパーミッションを維持する。

$ tar cvfzp ~/html.tar.gz <blogのディレクトリ>

新しいサーバで復元する。

% cd public_html
% scp <古いサーバのユーザー名>@oldserver.jp:~/html.tar.gz ./
% tar xvfzp html.tar.gz
  • 新しいサーバのwp-config.phpを書き換え
  • 起動確認
  • DNS設定を切り替え