なんと、このブログを置いていたレンタルサーバー「グランパワー」が24時間以上にわたってアクセス不可となった。
原因は、アカウントが乗っ取られ、大量の迷惑メールの配信が行われ、上位ネットワークからIPアドレスを遮断されたことによると。。。
これは、もちろん私のアカウントが乗っ取られたのではなく、おおもとのアカウントが乗っ取られたことによる。
いろいろ考えると、このサーバーもそろそろ潮時かなと思い、他のサーバーに移すことにした。
WordPressの引っ越し自体は手慣れたものだが、問題はFTPサーバーにもphpMyAdminにもアクセスできないってこと。
しかし、こんなこともあろうかと、WPのプラグイン「BackWPup」で定期的にバックアップをとり、バックアップファイル一式をdropboxに送るようにしていた。
しかし、いざバックアップしていたsqlファイルを、移転先サーバーのphpMyAdminから読み込もうとしたら問題が発生。
[adsense]
ファイルが大きすぎると。
よくよくphpmyadminのインポート画面を見てみると…
確かに。制限が8MBとなっている。
この制限の数値はサーバー会社によって異なるようだ。
その対策方法として、「php.iniを編集する」というのがまずあげられているのだが、これはサーバーによっては編集させてくれないところも多い。
そこで、「BigDump」というツールを使って大きいsqlファイルをmnysqlに突っ込む方法をとることにした。
使い方は、使用法のページ(英語)に書いてあるとおりだが、工程の2番目の「bigdump.php」内に自分のサーバーのDB情報を書き込むことをお忘れなく。
そして、ブラウザからこの「bigdump.php」にアクセスし、インポートするsqlファイルを選択すると、インポートが開始する。
しかし、またそこでエラーが。。。orz
どうやら、クエリーが300行以上を含んでいるのがダメらしい。
この問題については、移転元サーバーのphpMyAdminでsqlファイルをエクスポートする時に、データの「作成するクエリの最大長」の値をデフォルトでは以下のように50000となっているところを、1000などに減らすと解決する。
しかし、今回のケースでは「BackWPup」で数日前に作られたsqlファイルのみが頼りで、あらたにエクスポートすることができない。
それでもあきらめるなかれ!
もうこうなったら、sqlファイルをテキストエディタで直接ゴリゴリ編集するのみ。
[sql]INSERT INTO `wp_yarpp_related_cache` (`reference_ID`, `ID`, `score`, `date`) VALUES
(670, 827, 6.8, ‘2014-10-24 20:17:07’),
(670, 1032, 6.8, ‘2014-10-24 20:17:07’),
(670, 1397, 6.8, ‘2014-10-24 20:17:07’),
[/sql]
要はこんな感じでsqlが書かれているわけだが、一つのqueryが300行以上にならないように切ってやればいい。
[sql]
INSERT INTO `wp_yarpp_related_cache` (`reference_ID`, `ID`, `score`, `date`) VALUES
(670, 827, 6.8, ‘2014-10-24 20:17:07’),
(670, 1032, 6.8, ‘2014-10-24 20:17:07’),
(670, 1397, 6.8, ‘2014-10-24 20:17:07’),
~~~
(247, 231, 4.6, ‘2014-10-24 20:19:38’),
(247, 895, 3.8, ‘2014-10-24 20:19:38’),
(247, 904, 3.7, ‘2014-10-24 20:19:38’),
[/sql]
例えば、↑の最後から3行目あたりで切りたかったら
[sql]
INSERT INTO `wp_yarpp_related_cache` (`reference_ID`, `ID`, `score`, `date`) VALUES
(670, 827, 6.8, ‘2014-10-24 20:17:07’),
(670, 1032, 6.8, ‘2014-10-24 20:17:07’),
(670, 1397, 6.8, ‘2014-10-24 20:17:07’),
~~~
(247, 231, 4.6, ‘2014-10-24 20:19:38’);
INSERT INTO `wp_yarpp_related_cache` (`reference_ID`, `ID`, `score`, `date`) VALUES
(247, 895, 3.8, ‘2014-10-24 20:19:38’),
(247, 904, 3.7, ‘2014-10-24 20:19:38’),
[/sql]
行の最後の「,」を「;」に代えて、次の行に最初と同じクエリ行を書いてあげればよい。
あとは、これを300行ぐらいごとに延々と繰り返すのみ。
データによっては時間がかかるかもしれないが、これさえやれば問題はクリアできる。