- 締切済み
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) ; ************************************************************* かなりテンパってます。。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- orange4096
- ベストアンサー率100% (1/1)
先ほどの回答者 (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
- orange4096
- ベストアンサー率100% (1/1)
思いつきで回答します.ごめんなさい (MySQL バージョン 5.1 を使っているので, 5.0 での挙動が確認できないのです.5.0 と 5.1 では挙動が違うので,回答が憶測に止まります) CREATE DATABASE `test9` DEFAULT CHARACTER SET cp932 COLLATE utf8_general_ci のように明示的に utf8 を指定し, データベースを新しく作り, この新しいデータベースで同じ症状が再現するか? で問題の箇所を限定できる可能性があります. (すでに試しているのならごめんなさい)
- JV44
- ベストアンサー率50% (24/48)
まずはクライアントから 「SHOW VARIABLES LIKE 'character%'」 を入力して、実際のMySQLの文字コードの設定値を確認して下さい。
補足
このようになっています。 +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+