うろぐ

インターネットサービス&デジタル家電&デジタルカメラ&パソコンのレビュー

Mysql41
MySQL4.1特有の問題文字化けがあります。
同じMySQLでも3.23.Xや4.0.x、5.0.xの系列のバージョンでは発生しない問題です。
わたしの場合の文字化けは左の画像のように、全ての文字が「???????」となってしまうと言うものでした。

わたし自身がこれまで開発などで利用してきたMySQLサーバは3.23.x系列と4.0系列でしたが、今回、初めて4.1系列のMySQLサーバを利用
することになり、文字化けに悩まされました。何しろこれまでどのサーバでも正常に作動していたシステムが文字化けで動作しないのです。

書籍やネットで情報を集めると「set NAMES ujis」というコマンドが有効と言うことが分かりました。
使用言語はPerlですので
$sth = $db->do("set NAMES ujis");
としてみましたがエラーが返されます。
殆どの書籍やネットでは「$sth = $db->do("set NAMES ujis");」でしか解説をしていないので、他の方法を自分で探しました。
結果は
$dbh->do("SET NAMES ujis");
とする事で解決しました。

設置場所は
$user = ‘myname’;
$passwd = ‘password’;
$db = DBI->connect(‘DBI:mysql:postal:localhost’, $user, $passwd);
$dbh->do("SET NAMES ujis");
でかまいません。

MySQL4.1はサーバとクライアントをインストールするときに文字コードを設定しないと、初期設定のutf-8で設定されてしまいます。レンタルサーバ会社の担当者の知識が乏しい場合、こうした事を知らないで、文字コードをユーザーの使用する文字コードを確認せずにただ単にインストールをしてしまいます。そのため、ユーザーの方で文字コードをMySQLに対応させなければならないわけです。

MySQLを利用したシステムを構築する場合、レンタルサーバを契約する際には3.23.x4.0.xをお薦めします。4.1.xはよほどの事情が無い限り利用しない方が無難です。5.0.xはまだ情報が乏しく万一トラブルが発生した場合には自力で解決しなければならないケースが殆どと思われます。わたしも5.0が出た当初、自分のPCに5.0をインストールして試してみたのですが、文字化けなど諸問題が多発して手に負えませんでした。

5月 7th, 2008

Posted In: MySQL Server, サーバーの設定とトラブルの回避方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です