MySQLデータベースの移設(EUC-JP→UTF-8) ACCESS編
以前はMySQL4.0系+MS-ACCESSでデータベースシステムを組んでいたため、MySQLの文字コードをLinuxに合わせてujisに設定し、MyODBCドライバーにSOFT AGENCYが配布していたujis⇔shift-jis変換機能付のドライバーを使用してACCESSで操作できるようにしていました。
しかし、その後ハード・OS・サーバーツールともにどんどん進化し、新しいサーバーではこれまでの組み合わせでのシステムは組めなくなりました。
現在では新しいサーバーにインストール可能なFedora10以降+MySQL5系でシステムを組んでいますが、MySQLの文字コードを強制的にujisに設定することで、以前のシステムで使っていたデータベースをそのまま使用できています。
ただ、すでにujis⇔shift-jis変換用dllの配布も、それに対応するMyODBCドライバー3.51.06の配布も終了しているようですので、今後は現在使用中のデータベースをUTF-8に変換して、UTF-8でシステムを組むことになりそう、、ということで実際に試してみました。
まずはmy.cnfでMySQLの文字コードをUTF-8に設定し、別サーバーで稼動しているujisのデータベースのバックアップファイルをUTF-8に変換してサーバーに取り込みました。
次にWindows機にMyODBCドライバーの最新版5.1.7をインストールしてODBCデータソースアドミニストレータで設定してみましたが、エラーになった上に編集も削除も出来なくなってしまいました。
そこで少し古いバージョンの3.51.27をインストールしてみたところ、ODBCデータソースアドミニストレータでの設定はできました。
ただ最初は設定方法が分からず、ACCESSで日本語のデータを表示させると思い切り文字化けしてたんですが、下記の設定にしたところ問題なく日本語のデータを操作できるようになりました。
・ODBCアドミニストレータでの設定
文字コードを「CP932」に指定
AdvancedタブのFlags1の「Always handle binary function results as character data」にチェックを入れる
これでこれからUTF-8を使ったMySQL+ACCESSのデータベースシステムも問題なく組めそうです。