8月 11, 2007 0

MySQL4.0系を文字コードUTF-8で利用している場合のアップグレード方法

By in Diary, MySQL

いまさらながらMySQL4.0系で運用しているサービスがあるんですが、他とのからみがあり、バージョンアップしなければならなくなりました。で、せっかくなので、最新バージョンに移行しようと思ったものの、4.0系のmysqldumpではまりました。

元々4.0側で利用していた文字コードは、

  • サーバの設定: ujis(euc-jp)
  • 実際つっこんでいた値: utf-8

まあ、上の利用方法がすでに間違っているわけですが、4.0系側でエクスポートのために、mysqldumpを行っても、うまくdump出来ず文字化けします。いろいろ試しましたが、全くうまくいかず諦めかけていたところ、なんとMySQLオフィシャルにこの問題を吸収してくれるツールがありました。

MySQL Administrator

上記ツールには、バックアップ&リストア機能があり、こちらのバックアップ機能を使用すると実質mysqldumpを使用するのと同様に、sqlファイルを作成してくれます。

このツールを使用し、MySQL4系のサーバに接続してバックアップを取ると、なんと、UTF-8のキレイなsqlファイルを作ってくれるんです。あとは、これを、4.1系なり、5系なりへインポートするだけで、バックアップは完了となります(varcharの文字数調整なども必要に応じて)。

と、ここまで書いて気づきました。

実はこれは単純にMySQL Client側のバージョンの問題だけではなかろうかと….
で、早速試してみました。今家にある、MySQL4.1系のclientが入ったサーバから、上記、4.0系サーバへmysqldumpを実行してみたところ、なんと、全く問題なく、utf-8でのキレイな.sqlファイルを取得することが出来ました!が、しかし、インポートでエラー発生…

考えられる原因は、以下ですが、今回はタイムアップ。素直にMySQL Administratorを使用して無事インポート完了と相成りました。

  • クライアントのバージョンが古い(5以上だとまた違うのかも)
  • 上記方法が根本的にまずい

ここらあたりは、また今度追いかけてみようと思います。

Tags:

Leave a Reply