- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「中山」で検索すると「青山」のデータが引っかかる)
「中山」で検索すると「青山」のデータが引っかかる
このQ&Aのポイント
- MySQL4.0.23のデータを4.1.20のシステムに移す際に「Duplicate entry」なるメッセージが出て停止してしまい、調査をしていくうちに「店舗名のデータ」におきまして「中山支店」がすでに登録されていて登録できなかったとのことがわかりました。
- 以前のデータ中にそのようなデータが無いため不思議に思い「select * from 店舗名 where NAME like '%中山%'」で引っ張ると「青山」の文字を含むデータがぞろぞろと出てきました。
- 2バイトコードの問題かと思うのですが、DB内の文字コード(現在EUC)を変更するとサーバサイドのスクリプト変更が大量に発生するためこれは避けたいと思います。DB内の文字コードを変更せずにこの問題を解決できるような設定等の方法は無いでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
考えられるのは、MysqlのcharactersetがEUC以外になっていませんか? その場合は default-character-set を ujis に変更してください。
補足
ご回答ありがとうございます。 「my.cfg」の設定では以下のように「ujis」にしておりましたが ------------------------------------------------------------- default-character-set=ujis # character-set-server=ujis ←あまり意味が無かったのでコメントアウト skip-character-set-client-handshake ------------------------------------------------------------- MYSQLコマンド「SHOW VARIABLES LIKE 'char%';」で調べてみると「character_set_database」が「utf8」のままで効かなかったのが原因でした。 ROOT権限で「/var/lib/mysql/データベース名」にある「db.opt」の内容を以下のように強制的に書き換えてなんとか正常動作するようになりました。 ------------------------------------------------ default-character-set=ujis default-collation=ujis-japanese-ci ------------------------------------------------ 貴重なヒントありがとうございました。