こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

sjisを使いたい!

Linux(RedHat9)上のMySQL(ver 4.1.7)でsjisを使いたいのに使えなくて困っています。MySQLは標準でlatin1に指定されているので、日本語を用いたいため、sjisに変えようと思いました。よって、my.cnfの[mysqld]、[mysqldump]、[mysql]それぞれにdefault character set=sjisと記述したのですが、そうするとMySQLが起動できなくなりました。何故かと思い、上記の記述をやめて幾つか調べました。とりあえずmysql> status;では
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1

そしてmysql> show character set;をしてみると、
Charsetの中に、ujisもsjisも入っていませんでした。よって、このMySQLがサポートしていないsjisを設定ファイルに記述しても起動できなくなる訳です。
他のどのPCのMySQLにもsjisなどは当たり前のように入って
いるのに・・。
mysql> set character set sjis;や
mysql> set names sjis;とやっても、以下のエラー。
ERROR 1115 (42000): Unknown character set: 'sjis'

このMySQLの状態を調べるため、mysql> show variables
ike 'char%';とすると、
Variable_name | Value
character_set_client | latin1
character_set_connection | latin1
character_set_database | latin1
character_set_results | latin1
character_set_server | latin1
character_set_system | utf8
character_sets_dir |

/usr/local/mysql/share/mysql/charsets/
となっています。このような状況で、どうやったらこの
MySQLはsjisを使えることができるようになるでしょうか。
どなたかお気づきの点でもあればアドバイスよろしくお願いします。m(_ _)m

投稿日時 - 2005-09-28 12:56:02

QNo.1678580

困ってます

質問者が選んだベストアンサー

わたしはmysqlは3.23系でとめているのでやや
事情がことなるかもしれませんが、以下のように
コンパイルしています。

./configure --with-charset=ujis --with-extra-charsets=complex --prefix=/usr/local/mysql
make
make install
scripts/mysql_install_db
cp support-files/my-medium.cnf /etc/my.cnf

既存のデータはバックアップをとっておき、
インストール後var以下をコピーすればそのまま
運用できると思います。

sjisの文字化けについては漢字コードに「5C」
を含むものがエスケープされる問題があります。
具体的には「ソ噂構蚕十申貼能表暴予」など
けっこう普通に使う文字が化けます。
それらに対して対応を入れることもできますが、
eucにしておけば問題はありません。

投稿日時 - 2005-09-30 09:57:20

お礼

yambejpさん、回答ありがとうございます。
コンパイル時の説明や、文字化けについての
例を挙げてくださり、勉強になりました。
MySQLがどうにもならなくなれば、
これらを行っていきたいと思います。
どうもありがとうございました。m(_ _)m

投稿日時 - 2005-09-30 13:08:31

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

どこかを間借りしているのですか?
自分でインストールしましたか?

自分でなんとでもなるのであれば、とりあえず
--with-charset や --with-extra-charset
を指定して、ソースからmakeしなおした方が
よいのでは?

折角linuxでサーバー組むのならsjisより
ujisでなさることをおすすめしますけど。
結構漢字化けるので。

投稿日時 - 2005-09-29 19:21:56

補足

yambejpさん、回答ありがとうございます。
自分でインストールしていません。
インストールした人はもういなくて・・。
mysql 4.1.7.tar.gzがあるので、ソースからコンパイル
したみたいです。

>自分でなんとでもなるのであれば、とりあえず
>--with-charset や --with-extra-charset
>を指定して、ソースからmakeしなおした方が
>よいのでは?

前に別のパソコンにコンパイルなんかを
したことがあるんですが、with-charsetとかは
そのコンパイルするときに指定するコマンドですよね?
って事は、ソースからmakeすると、作ったデータベース
はどうなるんですかね?
何分まだ勉強不足でして・・すいません。

>折角linuxでサーバー組むのならsjisより
>ujisでなさることをおすすめしますけど。
>結構漢字化けるので

sjisならよく漢字化けすると言うことですが、
よかったら、その例を教えてくださいませんか?
きっといい勉強になると思うので・・。

投稿日時 - 2005-09-29 21:32:08

あなたにオススメの質問