shuto_log.aep

自分がやったことなどを備忘録的な感じで残していこうと思います。

WordPressのデータベースを直接書き換えて画像のリンク切れを解消した話

事の発端

f:id:shutosg:20151201025211p:plain:w300
最近サイトを移行したのですが、このように突如画像のリンクが切れる事案が発生。
原因を探ると、ダッシュボードのメディア>ライブラリ>リンクが切れてる画像を選択、すると画像のURLが以下のように古い設定になっていた。
f:id:shutosg:20151201043222p:plain
この時は家のサーバでWPを動かしていたので完全にローカルIP。。。(しかもURLが書き換えられないように灰色になっている)
設定>一般設定>WordPressアドレス(URL)とか
設定>一般設定>サイトアドレス(URL)も新しいアドレスに変わってるのに、自動で切り替わらないらしい。

原因

VPSのサーバにログインしてmySQL開いていろいろ調べてたら、そもそもWPのデータベースに登録されているURLが"http://192.168.11.5/うんたら"みたいな感じで古いままで、このデータベースの中身を書き換えないとダメな感じだった。

MariaDB [wordpress_db]> select guid from wp_posts;
+---------------------------------------------------------------------------------------------------------+
| guid                                                                                                    |
+---------------------------------------------------------------------------------------------------------+
| http://192.168.11.5/blog/?page_id=2                                                                     |
| http://192.168.11.5/blog/?p=8                                                                           |
| http://192.168.11.5/blog/?p=9                                                                           |
| http://192.168.11.5/blog/?p=12                                                                          |
| http://192.168.11.5/blog/archives/13                                                                    |
| http://192.168.11.5/blog/?p=14                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/スクリーンショット-2015-03-03-10.21.30.png          |
| http://192.168.11.5/blog/archives/16                                                                    |
| http://192.168.11.5/blog/?p=17                                                                          |
| http://192.168.11.5/blog/?p=18                                                                          |
| http://192.168.11.5/blog/?p=19                                                                          |
| http://192.168.11.5/blog/?p=20                                                                          |
| http://192.168.11.5/blog/?p=21                                                                          |
| http://192.168.11.5/blog/?p=22                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/SG-MAD.png                                          |
| http://192.168.11.5/blog/?p=24                                                                          |
| http://192.168.11.5/blog/?p=25                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-PV.png                                          |
| http://192.168.11.5/blog/?p=27                                                                          |
| http://192.168.11.5/blog/?p=28                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/isho-MV.png                                         |
| http://192.168.11.5/blog/?p=30                                                                          |
| http://192.168.11.5/blog/?p=31                                                                          |
| http://192.168.11.5/blog/?p=32                                                                          |
| http://192.168.11.5/blog/?p=33                                                                          |
| http://192.168.11.5/blog/?p=34                                                                          |
| http://192.168.11.5/blog/?p=35                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/mdmg-MAD.png                                        |
| http://192.168.11.5/blog/?p=37                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/EotCF-MV.png                                        |
| http://192.168.11.5/blog/?p=39                                                                          |
| http://192.168.11.5/blog/?p=40                                                                          |
| http://192.168.11.5/blog/?p=41                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/OC-CM.png                                           |
| http://192.168.11.5/blog/?p=43                                                                          |
| http://192.168.11.5/blog/?p=44                                                                          |
| http://192.168.11.5/blog/?p=45                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/OC-WM.png                                           |
| http://192.168.11.5/blog/?p=47                                                                          |
| http://192.168.11.5/blog/?p=48                                                                          |
| http://192.168.11.5/blog/?p=49                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/jj-MV.png                                           |
| http://192.168.11.5/blog/?p=51                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/VVV-MAD.png                                         |
| http://192.168.11.5/blog/?p=53                                                                          |
| http://192.168.11.5/blog/?p=54                                                                          |
| http://192.168.11.5/blog/?p=55                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/miku-summon.png                                     |
| http://192.168.11.5/blog/?p=57                                                                          |
| http://192.168.11.5/blog/?p=58                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-logo.jpg                                        |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/FMSロゴ.jpg                                         |
| http://192.168.11.5/blog/?p=61                                                                          |
| http://192.168.11.5/blog/?p=62                                                                          |
| http://192.168.11.5/blog/?p=63                                                                          |
| http://192.168.11.5/blog/?p=64                                                                          |
| http://192.168.11.5/blog/?p=65                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-PV2.png                                         |
| http://192.168.11.5/blog/?p=67                                                                          |
| http://192.168.11.5/blog/?p=68                                                                          |
| http://192.168.11.5/blog/?p=69                                                                          |
| http://192.168.11.5/blog/?p=71                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/copia-unidle.png                                    |
| http://192.168.11.5/blog/?p=73                                                                          |
| http://192.168.11.5/blog/?p=74                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/EC2014-dt.png                                       |
| http://192.168.11.5/blog/?p=76                                                                          |
| http://192.168.11.5/blog/?p=77                                                                          |
| http://192.168.11.5/blog/?p=78                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/hoshinone-MV.png                                    |
| http://192.168.11.5/blog/?p=80                                                                          |
| http://192.168.11.5/blog/?p=81                                                                          |
| http://192.168.11.5/blog/?p=82                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/MP2015-PV.png                                       |
| http://192.168.11.5/blog/?p=84                                                                          |
| http://192.168.11.5/blog/?p=85                                                                          |
| http://192.168.11.5/blog/?p=86                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/SAO-MAD.png                                         |
| http://192.168.11.5/blog/?p=88                                                                          |
| http://192.168.11.5/blog/wp-content/uploads/2015/03/sokon-top.jpg                                       |
| http://192.168.11.5/blog/?p=90                                                                          |
| http://192.168.11.5/blog/?p=91                                                                          |
| http://shutosg.net/blog/?p=92                                                                           |
| http://shutosg.net/blog/?p=93                                                                           |
| http://shutosg.net/blog/wp-content/uploads/2015/03/cc_glitch.jpg                                        |
| http://shutosg.net/blog/?p=95                                                                           |
| http://shutosg.net/?p=96                                                                                |
| http://shutosg.net/?p=97                                                                                |
| http://shutosg.net/?p=98                                                                                |
| http://shutosg.net/?p=99                                                                                |
| http://shutosg.net/?p=100                                                                               |
| http://shutosg.net/?p=101                                                                               |
| http://shutosg.net/?p=102                                                                               |
| http://shutosg.net/?p=103                                                                               |
| http://shutosg.net/?p=104                                                                               |
| http://shutosg.net/?p=105                                                                               |
| http://shutosg.net/wp-content/uploads/2015/05/profile.png                                               |
| http://shutosg.net/wp-content/uploads/2015/05/HP_logo.png                                               |
| http://shutosg.net/?p=110                                                                               |
| http://shutosg.net/wp-content/uploads/2015/05/next.png                                                  |
| http://shutosg.net/wp-content/uploads/2015/05/previous.png                                              |
| http://shutosg.net/?p=113                                                                               |
| http://shutosg.net/?p=114                                                                               |
| http://shutosg.net/?p=116                                                                               |
| http://shutosg.net/?p=117                                                                               |
| http://shutosg.net/?p=119                                                                               |
| http://shutosg.net/wp-content/uploads/2015/06/best-teacher.png                                          |
| http://shutosg.net/?p=121                                                                               |
| http://shutosg.net/wp-content/uploads/2015/06/fmsctf-logo.jpg                                           |
| http://shutosg.net/?p=123                                                                               |
| http://shutosg.net/?p=124                                                                               |
| http://shutosg.net/?p=125                                                                               |
| http://shutosg.net/?p=126                                                                               |
| http://shutosg.net/?p=127                                                                               |
| http://shutosg.net/?p=128                                                                               |
| http://shutosg.net/?p=130                                                                               |
| http://shutosg.net/?p=131                                                                               |
| http://shutosg.net/wp-content/uploads/2015/09/gabriel-mirage-150x150.png                                |
| http://shutosg.net/?p=134                                                                               |
| http://shutosg.net/wp-content/uploads/2015/10/jikuuyuuei-150x150.png                                    |
| http://shutosg.net/?p=136                                                                               |
| http://shutosg.net/?p=137                                                                               |
| http://shutosg.net/?p=139                                                                               |
| http://shutosg.net/?p=140                                                                               |
| http://shutosg.net/?p=141                                                                               |
+---------------------------------------------------------------------------------------------------------+
125 rows in set (0.00 sec)

解決策

mySQLでデータベースを書き換える

ググったけどろくな情報はみつからず、上記のようにデータベースの内容を直接書き換えないといけない(しかも一部はちゃんと新しいURLになってる…)のは明確だったので、しかたなく普段書かないmySQLを調べ始めた。。。

データベースを開く

サーバに接続(CentOS7.1にsshでリモートログイン)した状態で

$ mysql -ushuto -p -Dwordpress_db
Enter password:

としてデータベースに接続する。ここで、shutoはユーザ名、wordpress_dbはデータベース名なので人によって変わる。覚えていない人はWordPressのディレクトリにあるwp-config.phpの中を見ると

define('DB_NAME', 'wordpress_db');
define('DB_USER', 'shuto');
define('DB_PASSWORD', '**********');

と言った感じで必要な情報が定義されているのでそこを見るとよい。(ただしこのファイルは外部に流出すると危険なので取り扱い厳重注意)

テーブルの確認

まず最初にデータベースがどういう構造をしているのか確認する。

MariaDB [wordpress_db]> SHOW TABLES;
+------------------------+
| Tables_in_wordpress_db |
+------------------------+
| wp_commentmeta         |
| wp_comments            |
| wp_duplicator_packages |
| wp_links               |
| wp_options             |
| wp_postmeta            |
| wp_posts               |
| wp_term_relationships  |
| wp_term_taxonomy       |
| wp_terms               |
| wp_usermeta            |
| wp_users               |
+------------------------+
12 rows in set (0.00 sec)

この場合これらの12のテーブルがあるようだ。
そこで地道に

SELECT * FROM wp_commentmeta;

とかしてそれぞれのテーブルの中身を全部見ていった。
結局当たりがwp_postsで、

SELECT * FROM wp_posts;

とするとアホみたいに大量の内容が表示され、その中に古いリンクが記述されたカラムもあった。
結局問題のURLは、wp_postsテーブルのguidというカラムに格納されていることが分かった。内容が多いのでIDとguidのみ表示させると、

MariaDB [wordpress_db]> SELECT ID, guid FROM wp_posts;
+-----+---------------------------------------------------------------------------------------------------------+
| ID  | guid                                                                                                    |
+-----+---------------------------------------------------------------------------------------------------------+
|   2 | http://192.168.11.5/blog/?page_id=2                                                                     |
|   8 | http://192.168.11.5/blog/?p=8                                                                           |
|   9 | http://192.168.11.5/blog/?p=9                                                                           |
|  12 | http://192.168.11.5/blog/?p=12                                                                          |
|  13 | http://192.168.11.5/blog/archives/13                                                                    |
|  14 | http://192.168.11.5/blog/?p=14                                                                          |
|  15 | http://192.168.11.5/blog/wp-content/uploads/2015/03/スクリーンショット-2015-03-03-10.21.30.png          |
|  16 | http://192.168.11.5/blog/archives/16                                                                    |
|  17 | http://192.168.11.5/blog/?p=17                                                                          |
|  18 | http://192.168.11.5/blog/?p=18                                                                          |
|  19 | http://192.168.11.5/blog/?p=19                                                                          |
|  20 | http://192.168.11.5/blog/?p=20                                                                          |
|  21 | http://192.168.11.5/blog/?p=21                                                                          |
|  22 | http://192.168.11.5/blog/?p=22                                                                          |
|  23 | http://192.168.11.5/blog/wp-content/uploads/2015/03/SG-MAD.png                                          |
|  24 | http://192.168.11.5/blog/?p=24                                                                          |
|  25 | http://192.168.11.5/blog/?p=25                                                                          |
|  26 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-PV.png                                          |
|  27 | http://192.168.11.5/blog/?p=27                                                                          |
|  28 | http://192.168.11.5/blog/?p=28                                                                          |
|  29 | http://192.168.11.5/blog/wp-content/uploads/2015/03/isho-MV.png                                         |
|  30 | http://192.168.11.5/blog/?p=30                                                                          |
|  31 | http://192.168.11.5/blog/?p=31                                                                          |
|  32 | http://192.168.11.5/blog/?p=32                                                                          |
|  33 | http://192.168.11.5/blog/?p=33                                                                          |
|  34 | http://192.168.11.5/blog/?p=34                                                                          |
|  35 | http://192.168.11.5/blog/?p=35                                                                          |
|  36 | http://192.168.11.5/blog/wp-content/uploads/2015/03/mdmg-MAD.png                                        |
|  37 | http://192.168.11.5/blog/?p=37                                                                          |
|  38 | http://192.168.11.5/blog/wp-content/uploads/2015/03/EotCF-MV.png                                        |
|  39 | http://192.168.11.5/blog/?p=39                                                                          |
|  40 | http://192.168.11.5/blog/?p=40                                                                          |
|  41 | http://192.168.11.5/blog/?p=41                                                                          |
|  42 | http://192.168.11.5/blog/wp-content/uploads/2015/03/OC-CM.png                                           |
|  43 | http://192.168.11.5/blog/?p=43                                                                          |
|  44 | http://192.168.11.5/blog/?p=44                                                                          |
|  45 | http://192.168.11.5/blog/?p=45                                                                          |
|  46 | http://192.168.11.5/blog/wp-content/uploads/2015/03/OC-WM.png                                           |
|  47 | http://192.168.11.5/blog/?p=47                                                                          |
|  48 | http://192.168.11.5/blog/?p=48                                                                          |
|  49 | http://192.168.11.5/blog/?p=49                                                                          |
|  50 | http://192.168.11.5/blog/wp-content/uploads/2015/03/jj-MV.png                                           |
|  51 | http://192.168.11.5/blog/?p=51                                                                          |
|  52 | http://192.168.11.5/blog/wp-content/uploads/2015/03/VVV-MAD.png                                         |
|  53 | http://192.168.11.5/blog/?p=53                                                                          |
|  54 | http://192.168.11.5/blog/?p=54                                                                          |
|  55 | http://192.168.11.5/blog/?p=55                                                                          |
|  56 | http://192.168.11.5/blog/wp-content/uploads/2015/03/miku-summon.png                                     |
|  57 | http://192.168.11.5/blog/?p=57                                                                          |
|  58 | http://192.168.11.5/blog/?p=58                                                                          |
|  59 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-logo.jpg                                        |
|  60 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMSロゴ.jpg                                         |
|  61 | http://192.168.11.5/blog/?p=61                                                                          |
|  62 | http://192.168.11.5/blog/?p=62                                                                          |
|  63 | http://192.168.11.5/blog/?p=63                                                                          |
|  64 | http://192.168.11.5/blog/?p=64                                                                          |
|  65 | http://192.168.11.5/blog/?p=65                                                                          |
|  66 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-PV2.png                                         |
|  67 | http://192.168.11.5/blog/?p=67                                                                          |
|  68 | http://192.168.11.5/blog/?p=68                                                                          |
|  69 | http://192.168.11.5/blog/?p=69                                                                          |
|  71 | http://192.168.11.5/blog/?p=71                                                                          |
|  72 | http://192.168.11.5/blog/wp-content/uploads/2015/03/copia-unidle.png                                    |
|  73 | http://192.168.11.5/blog/?p=73                                                                          |
|  74 | http://192.168.11.5/blog/?p=74                                                                          |
|  75 | http://192.168.11.5/blog/wp-content/uploads/2015/03/EC2014-dt.png                                       |
|  76 | http://192.168.11.5/blog/?p=76                                                                          |
|  77 | http://192.168.11.5/blog/?p=77                                                                          |
|  78 | http://192.168.11.5/blog/?p=78                                                                          |
|  79 | http://192.168.11.5/blog/wp-content/uploads/2015/03/hoshinone-MV.png                                    |
|  80 | http://192.168.11.5/blog/?p=80                                                                          |
|  81 | http://192.168.11.5/blog/?p=81                                                                          |
|  82 | http://192.168.11.5/blog/?p=82                                                                          |
|  83 | http://192.168.11.5/blog/wp-content/uploads/2015/03/MP2015-PV.png                                       |
|  84 | http://192.168.11.5/blog/?p=84                                                                          |
|  85 | http://192.168.11.5/blog/?p=85                                                                          |
|  86 | http://192.168.11.5/blog/?p=86                                                                          |
|  87 | http://192.168.11.5/blog/wp-content/uploads/2015/03/SAO-MAD.png                                         |
|  88 | http://192.168.11.5/blog/?p=88                                                                          |
|  89 | http://192.168.11.5/blog/wp-content/uploads/2015/03/sokon-top.jpg                                       |
|  90 | http://192.168.11.5/blog/?p=90                                                                          |
|  91 | http://192.168.11.5/blog/?p=91                                                                          |
|  92 | http://shutosg.net/blog/?p=92                                                                           |
|  93 | http://shutosg.net/blog/?p=93                                                                           |
|  94 | http://shutosg.net/blog/wp-content/uploads/2015/03/cc_glitch.jpg                                        |
|  95 | http://shutosg.net/blog/?p=95                                                                           |
|  96 | http://shutosg.net/?p=96                                                                                |
|  97 | http://shutosg.net/?p=97                                                                                |
|  98 | http://shutosg.net/?p=98                                                                                |
|  99 | http://shutosg.net/?p=99                                                                                |
| 100 | http://shutosg.net/?p=100                                                                               |
| 101 | http://shutosg.net/?p=101                                                                               |
| 102 | http://shutosg.net/?p=102                                                                               |
| 103 | http://shutosg.net/?p=103                                                                               |
| 104 | http://shutosg.net/?p=104                                                                               |
| 105 | http://shutosg.net/?p=105                                                                               |
| 108 | http://shutosg.net/wp-content/uploads/2015/05/profile.png                                               |
| 109 | http://shutosg.net/wp-content/uploads/2015/05/HP_logo.png                                               |
| 110 | http://shutosg.net/?p=110                                                                               |
| 111 | http://shutosg.net/wp-content/uploads/2015/05/next.png                                                  |
| 112 | http://shutosg.net/wp-content/uploads/2015/05/previous.png                                              |
| 113 | http://shutosg.net/?p=113                                                                               |
| 114 | http://shutosg.net/?p=114                                                                               |
| 116 | http://shutosg.net/?p=116                                                                               |
| 117 | http://shutosg.net/?p=117                                                                               |
| 119 | http://shutosg.net/?p=119                                                                               |
| 120 | http://shutosg.net/wp-content/uploads/2015/06/best-teacher.png                                          |
| 121 | http://shutosg.net/?p=121                                                                               |
| 122 | http://shutosg.net/wp-content/uploads/2015/06/fmsctf-logo.jpg                                           |
| 123 | http://shutosg.net/?p=123                                                                               |
| 124 | http://shutosg.net/?p=124                                                                               |
| 125 | http://shutosg.net/?p=125                                                                               |
| 126 | http://shutosg.net/?p=126                                                                               |
| 127 | http://shutosg.net/?p=127                                                                               |
| 128 | http://shutosg.net/?p=128                                                                               |
| 130 | http://shutosg.net/?p=130                                                                               |
| 131 | http://shutosg.net/?p=131                                                                               |
| 132 | http://shutosg.net/wp-content/uploads/2015/09/gabriel-mirage-150x150.png                                |
| 134 | http://shutosg.net/?p=134                                                                               |
| 135 | http://shutosg.net/wp-content/uploads/2015/10/jikuuyuuei-150x150.png                                    |
| 136 | http://shutosg.net/?p=136                                                                               |
| 137 | http://shutosg.net/?p=137                                                                               |
| 139 | http://shutosg.net/?p=139                                                                               |
| 140 | http://shutosg.net/?p=140                                                                               |
| 141 | http://shutosg.net/?p=141                                                                               |
+-----+---------------------------------------------------------------------------------------------------------+
125 rows in set (0.00 sec)

といった感じに表示された。
問題のURLは古いローカルIPを含むものなので、例えばid=83とかがそれにあたる。

書き換え対象を正規表現を使って抽出してみる

最終的には古いURLを新しいURLで置き換えたいけど、まずは抽出ができるか試してみる。
LIKE文の派生系でRLIKEという正規表現が使えるものがあるらしいので、【guidの前方が「http://192.」と一致する】という条件でやってみる。
参考リンク
www.dbonline.jp

MariaDB [wordpress_db]> SELECT id,guid FROM wp_posts WHERE guid RLIKE "^http://192.";
+----+---------------------------------------------------------------------------------------------------------+
| id | guid                                                                                                    |
+----+---------------------------------------------------------------------------------------------------------+
|  2 | http://192.168.11.5/blog/?page_id=2                                                                     |
|  8 | http://192.168.11.5/blog/?p=8                                                                           |
|  9 | http://192.168.11.5/blog/?p=9                                                                           |
| 12 | http://192.168.11.5/blog/?p=12                                                                          |
| 13 | http://192.168.11.5/blog/archives/13                                                                    |
| 14 | http://192.168.11.5/blog/?p=14                                                                          |
| 15 | http://192.168.11.5/blog/wp-content/uploads/2015/03/スクリーンショット-2015-03-03-10.21.30.png          |
| 16 | http://192.168.11.5/blog/archives/16                                                                    |
| 17 | http://192.168.11.5/blog/?p=17                                                                          |
| 18 | http://192.168.11.5/blog/?p=18                                                                          |
| 19 | http://192.168.11.5/blog/?p=19                                                                          |
| 20 | http://192.168.11.5/blog/?p=20                                                                          |
| 21 | http://192.168.11.5/blog/?p=21                                                                          |
| 22 | http://192.168.11.5/blog/?p=22                                                                          |
| 23 | http://192.168.11.5/blog/wp-content/uploads/2015/03/SG-MAD.png                                          |
| 24 | http://192.168.11.5/blog/?p=24                                                                          |
| 25 | http://192.168.11.5/blog/?p=25                                                                          |
| 26 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-PV.png                                          |
| 27 | http://192.168.11.5/blog/?p=27                                                                          |
| 28 | http://192.168.11.5/blog/?p=28                                                                          |
| 29 | http://192.168.11.5/blog/wp-content/uploads/2015/03/isho-MV.png                                         |
| 30 | http://192.168.11.5/blog/?p=30                                                                          |
| 31 | http://192.168.11.5/blog/?p=31                                                                          |
| 32 | http://192.168.11.5/blog/?p=32                                                                          |
| 33 | http://192.168.11.5/blog/?p=33                                                                          |
| 34 | http://192.168.11.5/blog/?p=34                                                                          |
| 35 | http://192.168.11.5/blog/?p=35                                                                          |
| 36 | http://192.168.11.5/blog/wp-content/uploads/2015/03/mdmg-MAD.png                                        |
| 37 | http://192.168.11.5/blog/?p=37                                                                          |
| 38 | http://192.168.11.5/blog/wp-content/uploads/2015/03/EotCF-MV.png                                        |
| 39 | http://192.168.11.5/blog/?p=39                                                                          |
| 40 | http://192.168.11.5/blog/?p=40                                                                          |
| 41 | http://192.168.11.5/blog/?p=41                                                                          |
| 42 | http://192.168.11.5/blog/wp-content/uploads/2015/03/OC-CM.png                                           |
| 43 | http://192.168.11.5/blog/?p=43                                                                          |
| 44 | http://192.168.11.5/blog/?p=44                                                                          |
| 45 | http://192.168.11.5/blog/?p=45                                                                          |
| 46 | http://192.168.11.5/blog/wp-content/uploads/2015/03/OC-WM.png                                           |
| 47 | http://192.168.11.5/blog/?p=47                                                                          |
| 48 | http://192.168.11.5/blog/?p=48                                                                          |
| 49 | http://192.168.11.5/blog/?p=49                                                                          |
| 50 | http://192.168.11.5/blog/wp-content/uploads/2015/03/jj-MV.png                                           |
| 51 | http://192.168.11.5/blog/?p=51                                                                          |
| 52 | http://192.168.11.5/blog/wp-content/uploads/2015/03/VVV-MAD.png                                         |
| 53 | http://192.168.11.5/blog/?p=53                                                                          |
| 54 | http://192.168.11.5/blog/?p=54                                                                          |
| 55 | http://192.168.11.5/blog/?p=55                                                                          |
| 56 | http://192.168.11.5/blog/wp-content/uploads/2015/03/miku-summon.png                                     |
| 57 | http://192.168.11.5/blog/?p=57                                                                          |
| 58 | http://192.168.11.5/blog/?p=58                                                                          |
| 59 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-logo.jpg                                        |
| 60 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMSロゴ.jpg                                         |
| 61 | http://192.168.11.5/blog/?p=61                                                                          |
| 62 | http://192.168.11.5/blog/?p=62                                                                          |
| 63 | http://192.168.11.5/blog/?p=63                                                                          |
| 64 | http://192.168.11.5/blog/?p=64                                                                          |
| 65 | http://192.168.11.5/blog/?p=65                                                                          |
| 66 | http://192.168.11.5/blog/wp-content/uploads/2015/03/FMS-PV2.png                                         |
| 67 | http://192.168.11.5/blog/?p=67                                                                          |
| 68 | http://192.168.11.5/blog/?p=68                                                                          |
| 69 | http://192.168.11.5/blog/?p=69                                                                          |
| 71 | http://192.168.11.5/blog/?p=71                                                                          |
| 72 | http://192.168.11.5/blog/wp-content/uploads/2015/03/copia-unidle.png                                    |
| 73 | http://192.168.11.5/blog/?p=73                                                                          |
| 74 | http://192.168.11.5/blog/?p=74                                                                          |
| 75 | http://192.168.11.5/blog/wp-content/uploads/2015/03/EC2014-dt.png                                       |
| 76 | http://192.168.11.5/blog/?p=76                                                                          |
| 77 | http://192.168.11.5/blog/?p=77                                                                          |
| 78 | http://192.168.11.5/blog/?p=78                                                                          |
| 79 | http://192.168.11.5/blog/wp-content/uploads/2015/03/hoshinone-MV.png                                    |
| 80 | http://192.168.11.5/blog/?p=80                                                                          |
| 81 | http://192.168.11.5/blog/?p=81                                                                          |
| 82 | http://192.168.11.5/blog/?p=82                                                                          |
| 84 | http://192.168.11.5/blog/?p=84                                                                          |
| 85 | http://192.168.11.5/blog/?p=85                                                                          |
| 86 | http://192.168.11.5/blog/?p=86                                                                          |
| 87 | http://192.168.11.5/blog/wp-content/uploads/2015/03/SAO-MAD.png                                         |
| 88 | http://192.168.11.5/blog/?p=88                                                                          |
| 90 | http://192.168.11.5/blog/?p=90                                                                          |
| 91 | http://192.168.11.5/blog/?p=91                                                                          |
+----+---------------------------------------------------------------------------------------------------------+
80 rows in set (0.00 sec)

いけたいけた。

正規表現で抽出した箇所を置換する

今度は古いURLを新しいURLに置き換える。

旧|http://192.168.11.5/blog/うんたら
新|http://shutosg.net/うんたら

といった感じだ。
これにはREPLACE()という関数があるらしいのでそれをって置き換えるのだが、実際にテーブル内の内容を更新するにはUPDATE文も使う。
REPLACE()関数について
文字列比較関数、正規表現|MySQL内部関数|MySQL|PHP & JavaScript Room
UPDATE文について

MySQL: レコードの更新と削除 – UPDATE、DELETE文
www.yukun.info


一気に書き換えるのは怖いので、とりあえずid=87だけ書き換えてみる。

MariaDB [wordpress_db]> UPDATE wp_posts SET guid = REPLACE(guid, "192.168.11.5/blog", "shutosg.net") WHERE id = 87;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

書き換えられたか確認する。

MariaDB [wordpress_db]> SELECT id, guid FROM wp_posts WHERE id = 87;
+----+-----------------------------------------------------------------+
| id | guid                                                            |
+----+-----------------------------------------------------------------+
| 87 | http://shutosg.net/wp-content/uploads/2015/03/SAO-MAD.png |
+----+-----------------------------------------------------------------+
1 row in set (0.00 sec)

できてる!!しかもこの時点でダッシュボードのメディアライブラリを見てみても、きちんとリンク切れが直っていた。

ってことで全部置き換えよう。

MariaDB [wordpress_db]> UPDATE wp_posts SET guid = REPLACE(guid, "192.168.11.5/blog", "shutosg.net") WHERE guid RLIKE "^http://192.";
Query OK, 80 rows affected (0.00 sec)
Rows matched: 80  Changed: 80  Warnings: 0

再度確認。

MariaDB [wordpress_db]> SELECT id,guid FROM wp_posts;
+-----+---------------------------------------------------------------------------------------------------+
| id  | guid                                                                                              |
+-----+---------------------------------------------------------------------------------------------------+
|   2 | http://shutosg.net/?page_id=2                                                                     |
|   8 | http://shutosg.net/?p=8                                                                           |
|   9 | http://shutosg.net/?p=9                                                                           |
|  12 | http://shutosg.net/?p=12                                                                          |
|  13 | http://shutosg.net/archives/13                                                                    |
|  14 | http://shutosg.net/?p=14                                                                          |
|  15 | http://shutosg.net/wp-content/uploads/2015/03/スクリーンショット-2015-03-03-10.21.30.png          |
|  16 | http://shutosg.net/archives/16                                                                    |
|  17 | http://shutosg.net/?p=17                                                                          |
|  18 | http://shutosg.net/?p=18                                                                          |
|  19 | http://shutosg.net/?p=19                                                                          |
|  20 | http://shutosg.net/?p=20                                                                          |
|  21 | http://shutosg.net/?p=21                                                                          |
|  22 | http://shutosg.net/?p=22                                                                          |
|  23 | http://shutosg.net/wp-content/uploads/2015/03/SG-MAD.png                                          |
|  24 | http://shutosg.net/?p=24                                                                          |
|  25 | http://shutosg.net/?p=25                                                                          |
|  26 | http://shutosg.net/wp-content/uploads/2015/03/FMS-PV.png                                          |
|  27 | http://shutosg.net/?p=27                                                                          |
|  28 | http://shutosg.net/?p=28                                                                          |
|  29 | http://shutosg.net/wp-content/uploads/2015/03/isho-MV.png                                         |
|  30 | http://shutosg.net/?p=30                                                                          |
|  31 | http://shutosg.net/?p=31                                                                          |
|  32 | http://shutosg.net/?p=32                                                                          |
|  33 | http://shutosg.net/?p=33                                                                          |
|  34 | http://shutosg.net/?p=34                                                                          |
|  35 | http://shutosg.net/?p=35                                                                          |
|  36 | http://shutosg.net/wp-content/uploads/2015/03/mdmg-MAD.png                                        |
|  37 | http://shutosg.net/?p=37                                                                          |
|  38 | http://shutosg.net/wp-content/uploads/2015/03/EotCF-MV.png                                        |
|  39 | http://shutosg.net/?p=39                                                                          |
|  40 | http://shutosg.net/?p=40                                                                          |
|  41 | http://shutosg.net/?p=41                                                                          |
|  42 | http://shutosg.net/wp-content/uploads/2015/03/OC-CM.png                                           |
|  43 | http://shutosg.net/?p=43                                                                          |
|  44 | http://shutosg.net/?p=44                                                                          |
|  45 | http://shutosg.net/?p=45                                                                          |
|  46 | http://shutosg.net/wp-content/uploads/2015/03/OC-WM.png                                           |
|  47 | http://shutosg.net/?p=47                                                                          |
|  48 | http://shutosg.net/?p=48                                                                          |
|  49 | http://shutosg.net/?p=49                                                                          |
|  50 | http://shutosg.net/wp-content/uploads/2015/03/jj-MV.png                                           |
|  51 | http://shutosg.net/?p=51                                                                          |
|  52 | http://shutosg.net/wp-content/uploads/2015/03/VVV-MAD.png                                         |
|  53 | http://shutosg.net/?p=53                                                                          |
|  54 | http://shutosg.net/?p=54                                                                          |
|  55 | http://shutosg.net/?p=55                                                                          |
|  56 | http://shutosg.net/wp-content/uploads/2015/03/miku-summon.png                                     |
|  57 | http://shutosg.net/?p=57                                                                          |
|  58 | http://shutosg.net/?p=58                                                                          |
|  59 | http://shutosg.net/wp-content/uploads/2015/03/FMS-logo.jpg                                        |
|  60 | http://shutosg.net/wp-content/uploads/2015/03/FMSロゴ.jpg                                         |
|  61 | http://shutosg.net/?p=61                                                                          |
|  62 | http://shutosg.net/?p=62                                                                          |
|  63 | http://shutosg.net/?p=63                                                                          |
|  64 | http://shutosg.net/?p=64                                                                          |
|  65 | http://shutosg.net/?p=65                                                                          |
|  66 | http://shutosg.net/wp-content/uploads/2015/03/FMS-PV2.png                                         |
|  67 | http://shutosg.net/?p=67                                                                          |
|  68 | http://shutosg.net/?p=68                                                                          |
|  69 | http://shutosg.net/?p=69                                                                          |
|  71 | http://shutosg.net/?p=71                                                                          |
|  72 | http://shutosg.net/wp-content/uploads/2015/03/copia-unidle.png                                    |
|  73 | http://shutosg.net/?p=73                                                                          |
|  74 | http://shutosg.net/?p=74                                                                          |
|  75 | http://shutosg.net/wp-content/uploads/2015/03/EC2014-dt.png                                       |
|  76 | http://shutosg.net/?p=76                                                                          |
|  77 | http://shutosg.net/?p=77                                                                          |
|  78 | http://shutosg.net/?p=78                                                                          |
|  79 | http://shutosg.net/wp-content/uploads/2015/03/hoshinone-MV.png                                    |
|  80 | http://shutosg.net/?p=80                                                                          |
|  81 | http://shutosg.net/?p=81                                                                          |
|  82 | http://shutosg.net/?p=82                                                                          |
|  83 | http://shutosg.net/wp-content/uploads/2015/03/MP2015-PV.png                                       |
|  84 | http://shutosg.net/?p=84                                                                          |
|  85 | http://shutosg.net/?p=85                                                                          |
|  86 | http://shutosg.net/?p=86                                                                          |
|  87 | http://shutosg.net/wp-content/uploads/2015/03/SAO-MAD.png                                         |
|  88 | http://shutosg.net/?p=88                                                                          |
|  89 | http://shutosg.net/wp-content/uploads/2015/03/sokon-top.jpg                                       |
|  90 | http://shutosg.net/?p=90                                                                          |
|  91 | http://shutosg.net/?p=91                                                                          |
|  92 | http://shutosg.net/blog/?p=92                                                                     |
|  93 | http://shutosg.net/blog/?p=93                                                                     |
|  95 | http://shutosg.net/blog/?p=95                                                                     |
|  96 | http://shutosg.net/?p=96                                                                          |
|  97 | http://shutosg.net/?p=97                                                                          |
|  98 | http://shutosg.net/?p=98                                                                          |
|  99 | http://shutosg.net/?p=99                                                                          |
| 100 | http://shutosg.net/?p=100                                                                         |
| 101 | http://shutosg.net/?p=101                                                                         |
| 102 | http://shutosg.net/?p=102                                                                         |
| 103 | http://shutosg.net/?p=103                                                                         |
| 104 | http://shutosg.net/?p=104                                                                         |
| 105 | http://shutosg.net/?p=105                                                                         |
| 108 | http://shutosg.net/wp-content/uploads/2015/05/profile.png                                         |
| 109 | http://shutosg.net/wp-content/uploads/2015/05/HP_logo.png                                         |
| 110 | http://shutosg.net/?p=110                                                                         |
| 111 | http://shutosg.net/wp-content/uploads/2015/05/next.png                                            |
| 112 | http://shutosg.net/wp-content/uploads/2015/05/previous.png                                        |
| 113 | http://shutosg.net/?p=113                                                                         |
| 114 | http://shutosg.net/?p=114                                                                         |
| 116 | http://shutosg.net/?p=116                                                                         |
| 117 | http://shutosg.net/?p=117                                                                         |
| 119 | http://shutosg.net/?p=119                                                                         |
| 120 | http://shutosg.net/wp-content/uploads/2015/06/best-teacher.png                                    |
| 121 | http://shutosg.net/?p=121                                                                         |
| 122 | http://shutosg.net/wp-content/uploads/2015/06/fmsctf-logo.jpg                                     |
| 123 | http://shutosg.net/?p=123                                                                         |
| 124 | http://shutosg.net/?p=124                                                                         |
| 125 | http://shutosg.net/?p=125                                                                         |
| 126 | http://shutosg.net/?p=126                                                                         |
| 127 | http://shutosg.net/?p=127                                                                         |
| 128 | http://shutosg.net/?p=128                                                                         |
| 130 | http://shutosg.net/?p=130                                                                         |
| 131 | http://shutosg.net/?p=131                                                                         |
| 132 | http://shutosg.net/wp-content/uploads/2015/09/gabriel-mirage-150x150.png                          |
| 134 | http://shutosg.net/?p=134                                                                         |
| 135 | http://shutosg.net/wp-content/uploads/2015/10/jikuuyuuei-150x150.png                              |
| 136 | http://shutosg.net/?p=136                                                                         |
| 137 | http://shutosg.net/?p=137                                                                         |
| 139 | http://shutosg.net/?p=139                                                                         |
| 140 | http://shutosg.net/?p=140                                                                         |
| 141 | http://shutosg.net/?p=141                                                                         |
+-----+---------------------------------------------------------------------------------------------------+
124 rows in set (0.00 sec)

というわけで全ての画像のリンク切れを直せましたとさ。
f:id:shutosg:20151201052738p:plain:w300