バージョンが異なるmysql間のデータ移行

お仕事の関係で、昔 xoops で作ったコミュニティサイトの移転作業をしています。その過程で mysql(ver.4)のデータをmysql(ver.5)に移転したのですが、エラーが起こって移転に失敗してしまいました。

普通に旧サーバで mysqldump を使って全データを取り出し、nkf文字コード変換をして、新サーバで mysql コマンドからデータを取り入れたら、こんなエラーメッセージが出ました。

ERROR 1064 (42000) at line 992: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index (id)
) TYPE=MyISAM' at line 11

調べてみると、mysql の ver.4 と ver.5 では予約語が異なるようです。上のエラーだと「index」という言葉が ver.5 から予約語になってしまい、アウトらしい。そこでCREATE TABLEで使われている「index」を全て「`index`」に置換したら、上手くいきました。

あとは文字化けが一部起きて sql文が壊れてましたが、数は少なかったので直接エディタで書き換えて直しました。

また何かトラブったときのための備忘録として書いておきます。

参考URL:
http://www.nacha.dyndns.tv/it_harmony/archives/2006/04/xoops_weblogmys.html



…と、ここまでの作業を終えて周りを見渡してみると、研究室は死屍累々です。明日が論文〆切のせいか、死んだように眠るやつが3匹。南無阿弥陀仏。(でもお前らまだ論文作業は終わってないだろというツッコミは我慢しつつ)