ずっと面倒でやってなかった、さくらのレンタルサーバーで動かしているwordpress2.9を3.1にアップデートを行った。
文字化けで死ぬかと思った!!!



このへんを見ながらやった。


が、文字化けした。状況としては、
  • PHPMyAdminでのimport時に、記事が全件読み込まれない
  • 文字化けしている
  • 新規作成したMySQL5.1はutf-8でデータベースを作成した
  • SQLファイルをnkfでutf-8に変換してからPHPMyAdminでimportすると全件読み込まれたが、依然文字化けしている
  • WordPress上でも、コントロールパネルのPHPMyAdmin上でも、どちらも文字化けしている
  • SQLファイルにexportした時点で18MBあった
  • bzipに圧縮してexportすると2MBぐらいになった。でもこれをimportさせてもダメ。
  • そもそもexportしたSQLファイルの文字コードをnkf -gで調べてもBINARYと表示される



文字化けの原因がよくわからない。
どうも最初にMySQL4.xをセットアップしたときに文字コードをutf8ではない物にしていたっぽい。そして書き出しの時に文字コードをutf8に指定しなかったかもしれない。どちらも思い当たるフシがある。


まあ文字化けの原因はどうでもいいので、今あるデータを加工して確実な方法でimportすればいいか、と思ってやってみたらうまくいった。


■解決方法
DBは削除して、utf8で新規作成する。PHPMyAdminは使わない。


exportしてきたshokai.sqlをMacでnkfでutf8にする
nkf -u shokai.sql > shokai_utf8.sql

ファイルの10行目あたりの
/*!40101 SET NAMES ujis */;

/*!40101 SET NAMES utf8 */;
に修正し、さくらレンタルサーバーに転送。


terminalでsshでさくらにログインして、
mysql shokai < shokai_utf8.sql -h mysql1234.db.sakura.ne.jp -u shokai -p
これで文字化けせずにいけた。

さくらにsshでログインできない人は、適当なUNIXマシンにMySQL5.1をインストールして、そこからmysqlコマンドを使えばimportできると思う。


※データベースの名前や、テーブル名(サーバー名と同じ)は適宜自分の環境に変更すること。