6月012011
0
ずっと面倒でやってなかった、さくらのレンタルサーバーで動かしているwordpress2.9を3.1にアップデートを行った。
文字化けで死ぬかと思った!!!
このへんを見ながらやった。
- さくらインターネットでWordPressを2.9にアップデートするためにMySQLをバージョンアップ – カイ士伝
- さくらインターネットのレンタルサーバで WordPress 2.9 へアップグレードできない方へ – Bamboo Studio * バンブースタジオ | Blog™
- WordPress2.9へ、MySQL4.0から5.1へ@さくらのレンタルサーバ : *n.on.log
が、文字化けした。状況としては、
- 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できると思う。
※データベースの名前や、テーブル名(サーバー名と同じ)は適宜自分の環境に変更すること。