« 少ない食事をモスで | メイン | 総合演習 »

2005年07月05日

MySQL 4.1 の日本語設定

現在 MySQL 3.x を使っていますが、今後は CentOS 4.1 に乗り換えるので、それに伴い MySQL 4.1.x を使うことになりそうです。

ソースコードから入れると柔軟に変更できるようですが、普通は RPM のをそのまま使うので、その設定でうまく使う方法を考えないといけない。

どの辺が変わったかは、他のページを見ていただくとして、とりあえず、設定が柔軟になったのです。あまりにも柔軟に設定できるようになってしまったので、初期設定では、日本語を扱いにくくなってます。

俺 UTF-8 をずっと使ってるもーん。という方は、そのままでもいけると思う。

僕は、昔(?)から EUC を使ってるんですよね。なので、なかなか UTF-8 に乗り換える機会が無い。ここで乗り換えようかと思ったのだけど、結局 EUC で行きそうです。

/etc/my.cnf の変更

[mysqld]
old_passwords=1

default-character-set=ujis
character-set-server=ujis

[client]
default-character-set=ujis

[mysql]
default-character-set=ujis

[mysqldump] 
default-character-set=ujis

ちょっと、変更しすぎたかもしれないけど。こんな感じに変更してる。

Perl の DBD::mysql での呼び出し

$dbh = DBI->connect('DBI:mysql:table:host;mysql_read_default_file=/etc/my.cnf', 'user', 'pass');

コネクション毎に設定が変更できるなんて、知らなかった。

内部での保存形式が UTF-8 になった影響は、まだわかりません。後々調べないと。

【関連情報】
・MySQL 4.1 日本語環境設定方法 (キャラクタセット設定方法)
 http://iandeth.dyndns.org/mt/ian/archives/000108.html

2005年07月05日 18:20 | Technology

トラックバック

コメント

それで結局どうなりました? 私は今、mysql-4.1.14にphpBBをインストールするのに手間取っています。4.0.26だとうまくEUC-JPでもいくのです。

一方、同じmysql-4.1.14でutf-8でb2evolutionもインストールしようとしているのです。どうすればいいんでしょう?

投稿者 頼 哲司 : 2006年04月14日 04:24

>> 頼 哲司 さん
セッション毎(プログラム上で)に my.cnf を指定しているためか、特にトラブルにあたっていません。

個別のアプリケーションは、開発元に問い合わせるか、他の方の使用事例を参照するのが良いと思います。

投稿者 ceekz : 2006年04月14日 05:40

ありがとうございました。今まで、googleで調べたのですがなかなかmysql4.1でb2evolutionを動かしている人がみつかりません。でもどこかにいるはずなので開発者に聞くのが正しいでしょう。あるいは日本語化しているサイトで聞くというのも。

投稿者 頼 哲司 : 2006年04月16日 07:25

phpBBのインストールは日本語版のフォーラムで聞くとやっている人がいました。b2evolutionは同じ要領で自分で出来ました。要はmysqlにmysql_connectで接続したら、mysql_query("SET CHARACTER SET ujis;", xxx);でキャラクターセットをサーバに教えてやればいい訳で変更箇所はphpBBは1つ、b2evolutionは3つしかありませんでした。

ありがとうございました。

投稿者 頼 哲司 : 2006年04月18日 00:29

>> 頼 哲司 さん
力になれませんでした…。
解決してよかったです。また、解決方法を記載していただきありがとうございます。

MySQL は、ちょっとずつ複雑になってきてますね…。バージョン 3.x は、結構シンプルだったのですが。

投稿者 ceekz : 2006年04月18日 02:52