リカバリがいくら簡単だとは言え、 DBManager で sqldumpのパス設定の変更やphpMyAdmin での設定変更を十回以上繰り返すと嫌になります。これからも何度もやることになりそうだったのでバッチ化しました。
この手順は [WordPress] バックアップサイトをMAMP上に作成する の手順でバックアップを戻した時に行う手順を mysql を使ってバッチを 1 回流せば良いようにしたものです。
この SQL は正直に言うと私の環境に非常に依存しているものですので、下記を読んで十分に理解できない場合にはデータベースを壊す覚悟でやってください。
まぁ、壊してもリストアできる環境になっているでしょうから、あまり恐れるものはないと思いますが(笑)
siteurlとhomeを更新するSQL
データベースをリストアした直後に phpMyAdmin で siteurl と home を変えています。これらは wp_options というテーブルにありますので、以下の SQL 文で更新できます。
1 2 |
update wp_options set option_value="http://localhost:8888/wordpress" where option_name="siteurl"; update wp_options set option_value="http://localhost:8888" where option_name="home"; |
簡単に説明すると
siteurl を http://localhost:8888/wordpress に
home を http://localhost:8888 に
更新する、という命令です
DBManagerの設定を変更するSQL
DBManager での変更項目は DB Options で “Path To mysqldump” と “Path To mysql”、”Path To Backup” を変えてますので、ここを SQL で変更するようにしましょう。
ただし、これはちょっと厄介です。まず、mysql を使ってみましょう。
ターミナルを立ち上げて、以下のように入力します。
1 2 |
> cd /Applications/MAMP/Library/bin > ./mysql -h localhost -u USERID -D DATABASE -pPASSWORD |
USERID、DATABASE、PASSWORD は mysql のデータベース名、ユーザ名、パスワードを入れてください。(WordPress ではなく mysql ですからご注意ください)。
そうすると、以下のような画面になると思います。
1 2 3 4 5 |
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 205 Server version: 5.5.25 Source distribution […] mysql> |
ここで次のように入力してリターンを押してみましょう。
1 |
mysql> select option_value from wp_options where option_name="dbmanager_options"; |
こんなのが表示されませんでしたか?
1 |
a:12:{s:13:"mysqldumppath";s:40:"/Applications/MAMP/Library/bin/mysqldump";s:9:"mysqlpath";s:36:"/Applications/MAMP/Library/bin/mysql";s:4:"path";s:56:"/Applications/MAMP/htdocs/wordpress/wp-content/backup-db";s:10:"max_backup";i:10;s:6:"backup";i:1;s:11:"backup_gzip";i:1;s:13:"backup_period";i:86400;s:12:"backup_email";s:0:"";s:8:"optimize";i:3;s:15:"optimize_period";i:0;s:6:"repair";i:2;s:13:"repair_period";i:0;} |
これが DBManager のオプション情報のデータです。実は、細かいところに色々と意味を持っているので、まずは正しい時のデータを先ほどのコマンドで出力しておいて、このデータを使って SQL 文を作りましょう。
作った SQL 文はこうなります。
1 |
update wp_options set option_value='a:12:{s:13:"mysqldumppath";s:40:"/Applications/MAMP/Library/bin/mysqldump";s:9:"mysqlpath";s:36:"/Applications/MAMP/Library/bin/mysql";s:4:"path";s:56:"/Applications/MAMP/htdocs/wordpress/wp-content/backup-db";s:10:"max_backup";i:10;s:6:"backup";i:1;s:11:"backup_gzip";i:1;s:13:"backup_period";i:86400;s:12:"backup_email";s:0:"";s:8:"optimize";i:3;s:15:"optimize_period";i:0;s:6:"repair";i:2;s:13:"repair_period";i:0;}' where option_name='dbmanager_options'; |
値の中に “(ダブルクォーテーション) が出てくるので、set option_value の値は ‘(シングルクォーテーション) で囲みましょう。
このオプションの値の意味ですが、
1 |
s:13:"mysqldumppath";s:40:"/Applications/MAMP/Library/bin/mysqldump"; |
文字列(s)が13文字で”mysqldumppath”、文字列(s)が40文字で”/Applications/MAMP/Library/bin/mysqldump” という構造になっています。そのため単純に値だけを修正するのではなくデータの長さも一緒に直す必要があります。
バッチファイルに仕込む
ここまでで SQL 文を作れたので、あとは SQL 文を実行するバッチを作ります。今までの SQL 文を 1 つの restore_wpdb.sql というファイルに3行に分けて記述します。
1 2 3 |
update wp_options set option_value="http://localhost:8888/wordpress" where option_name="siteurl"; update wp_options set option_value="http://localhost:8888" where option_name="home"; update wp_options set option_value='a:12:{s:13:"mysqldumppath";s:40:"/Applications/MAMP/Library/bin/mysqldump";s:9:"mysqlpath";s:36:"/Applications/MAMP/Library/bin/mysql";s:4:"path";s:56:"/Applications/MAMP/htdocs/wordpress/wp-content/backup-db";s:10:"max_backup";i:10;s:6:"backup";i:1;s:11:"backup_gzip";i:1;s:13:"backup_period";i:86400;s:12:"backup_email";s:0:"";s:8:"optimize";i:3;s:15:"optimize_period";i:0;s:6:"repair";i:2;s:13:"repair_period";i:0;}' where option_name='dbmanager_options'; |
次に、この SQL 文を読み込んで実行するバッチファイル restore_wpdb.sh を作ります。このファイルには以下のように記述します。
1 2 |
#!/bin/sh /Applications/MAMP/Library/bin/mysql -h localhost -u USERID -pPASSWORD -D DATABASE < restore_wpdb.sql |
そして、このファイルが実行できるように chmod 755 あたりを設定しておけば、後はDBをリストアした後に restore_wpdb.sh を実行すれば、必要なデータが勝手に書き換えられるというわけです。
今回は、ちょっと訳のわからない内容だったかもしれませんが、 WordPress のデータは全部データベースに入っているので、いざとなったらそれを直接いじると色々なことができますよ、という内容でした。
WordPress 関連のエントリ
インストールや設定変更とデータ移行
プラグイン
バージョンアップ
カスタマイズ
Stinger 3関連
チューニング
MAMPを使ったバックアップサイトの構築
開発関連
最後まで読んでいただきありがとうございます。
左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです
Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします
RSSリーダへの登録は こちら からどうぞ。
コメントを残す