MySQLのインポート時に文字化け

ひっそりとサーバの移転をしたのですが、MySQLのエクスポート » インポートでどうしても文字化けしてはまったのですが、どうにか無事移行できたようです。

まず、状況。

  • MovableType(3.21ja)で使用のデータベース(UTF-8)をphpMyAdminからエクスポート、そのsqlファイルをエディタ上でUTF-8で文字化けがおきないことを確認。
  • 新サーバへphpMyAdminでインポートすると日本語の照合順序が「latin1_swedish_ci」になってしまい、文字化けしてしまう。
  • エクスポート時にエンコードは“non”、インポート時のファイル文字セットは“utf8”。

文字化けはMySQLのバージョンが4.1.20に変わったことに由来する模様。詳しくは下を参照。

で、エクスポートしたsqlファイルの各テーブルに

DEFAULT CHARSET=utf8

を指定して、iandethさんの次のエントリ、

を参考にmt-config.cgi中の

SQLSetNames 1

行のコメントアウトをとって、無事完了。

いきおいで、MovableTypeのバージョンも出たばかりの3.34にアップデートしてもみたけれど、また文字化けしたので、やっぱり戻した。新しいmt-config.cgiには上の行の記述がないので、前のmt-config.cgiをそのまま使用したのだけれど、状況変わらず。mt/lib/MT/ObjectDriver/DBI/mysql.pmの中身も変更があるみたいで、文字化け不具合のことも考えられているようだけど、どうにもだめなので、とりあえず3.34のことは忘れる(テスト用には同環境でインストールしたので様子を見ながら)。

Similar Posts:

Leave a Reply