みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

締切り済みの質問

MySQL5の文字化けについて(Linux)

MySQL5の文字化けについて

linuxもデータベースも初級の素人です。

my.iniをデフォルトのままwindowsからTeraTermでサーバに接続し
SQLを発行していたのですが、そのときは日本語が文字化けしませんでした。
しかしphpmyadminを利用しようとmy.iniを変更すると、変更したが為に日本語文字化けするようになってしまいました。
修正後はMySQLは再起動しており、再起動後、新たにテーブルを作成し、
データの挿入をしてテストしています。それでもうまくいきません。
修正後のmy.iniのどこがおかしいのでしょうか?

[サーババージョン]
OS:CentOS5.4 (OSの文字コード:UTF-8のまま変更なし)
MySQL5.0.77

[テスト環境]
windowsマシンからTeraTermProでログイン
・TeraTermの設定:文字コード送受信ともに「UFT-8」を指定



****************** [ 変更前のmy.ini ] ***********************
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
user=mysql

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
***************************************************************





****************** [ 変更後のmy.ini ] ***********************
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

default-character-set=utf8
init-connect=SET NAMES utf8 (←これがいるのがよく分からない)
skip-character-set-client-handshake

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[client] ← (これもいるのかよく分からない)
default-character-set=utf8
*************************************************************



********* TeraTermで接続しSQLを発行したときのSQL文 **********
mysql> create table
account
(ID integer primary key,
NAME varchar(100),
MONEY varchar(100)
);

mysql> insert into
account
values
(1,'ボブ',1000),
(2,'パトリック',2000),
(3,'サンディー',3000),
(4,'イカルト',4000)
;
*************************************************************

かなりテンパってます。。
よろしくお願いします。

投稿日時 - 2009-12-05 11:51:07

QNo.5499480

困ってます

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

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

回答(3)

ANo.3

先ほどの回答者 (orange1024) です. 訂正します.ごめんなさい

要点 cp932 と書いたのは、正しくは utf8

<訂正前>
CREATE DATABASE `test9` DEFAULT CHARACTER SET cp932 COLLATE utf8_general_ci
<訂正後>
CREATE DATABASE `test9` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

投稿日時 - 2009-12-10 02:19:08

ANo.2

思いつきで回答します.ごめんなさい
(MySQL バージョン 5.1 を使っているので, 5.0 での挙動が確認できないのです.5.0 と 5.1 では挙動が違うので,回答が憶測に止まります)

CREATE DATABASE `test9` DEFAULT CHARACTER SET cp932 COLLATE utf8_general_ci

のように明示的に utf8 を指定し, データベースを新しく作り,
この新しいデータベースで同じ症状が再現するか? 
で問題の箇所を限定できる可能性があります.
(すでに試しているのならごめんなさい)

参考URL:http://www.db.is.kyushu-u.ac.jp/rinkou/mysql/code.html

投稿日時 - 2009-12-10 02:16:35

ANo.1

まずはクライアントから
「SHOW VARIABLES LIKE 'character%'」
を入力して、実際のMySQLの文字コードの設定値を確認して下さい。

投稿日時 - 2009-12-05 13:57:27

補足

このようになっています。

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

投稿日時 - 2009-12-05 16:22:15

あなたにオススメの質問