mysqlコマンドラインのことで・・・・
はじめまして。
今、LinuxのCentOSでmysqlをインストール(yumで)しコマンドラインでデータベースを作成し、insert文で日本語を入力したのですが、なぜか文字化け?をしてしまう現象が起きております。
いろいろ調べた結果どうやらダブルクウォートとか()で囲むとばけるみたいです。
現象)
mysql> insert into test (1,"聽聽聽・ ")
※本来は↓
mysql> insert into test (1,"あああああああ");
でも、ふしぎなことにメモ帳で書いたものを貼り付けると文字化けはせず、正常うまくいきshow コマンドでデータを見ることができます。
他にもデータベース名を日本語にしてもうまくいきます。
mysql> create database あああああ;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| あああああ |
+--------------------+
4 rows in set (0.00 sec)
ちゃんと消すこともできます。
insertだったり、updateなどでデータ(””や()で囲むと?駄目?)をコマンドラインで更新すると化けてしまいます。
もしお分かりになる方がいらっしゃいましたら宜しくお願いします。
■サーバ情報
Linux CentOS 5.3(final)
カーネル 2.6.18-164.el5
MySQL version 5.0.77
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.06 sec)
■my.cnfの設定
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
[mysql]
default_character_set = utf8
※関係ないと思いますが一応i18nの設定も
cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"
※ターミナル設定もutf8になっております。
宜しくお願いいたします。
お礼
ご回答ありがとうございます。 仰るとおり、永久的なものにするにはファイルで設定するしかないようです。 http://dev.mysql.com/doc/refman/5.1/ja/set-option.html