Open Source WEB

コマンド引数にオプションを並べる方法 および /etc/my.cnf と ~/.my.cnf による、mysqlクライアントコマンドの 起動オプション指定について説明した。

この様な指定により、起動時に適切なキャラクタセットに指定できるのだが、 mysqlコマンドを立ち上げ直すことなく、mysqlコマンドに司令を与えるだけで キャラクタセットを変更したいものである。

SHOW VARIABLES .... にて、キャラクタセットの値を表示してきたが、 当然、これらはMySQLの変数であり、変更することができる。

SET構文

SET [GLOBAL | SESSION] sql_variable=expression,
  [[GLOBAL | SESSION] sql_variable=expression] ...

現状では、起動すると以下のようになっている。

mysql> show variables like 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | sjis   |
| character_set_connection | sjis   |
| character_set_database   | latin1 |
| character_set_results    | sjis   |
| character_set_server     | latin1 |
| character_set_system     | utf8   |
+--------------------------+--------+
6 rows in set (0.00 sec)

mysql>

ここで、 character_set_client を ujis にしてみよう。

mysql> set character_set_client=ujis;
Query OK, 0 rows affected (0.00 sec)
 
mysql> show variables like 'character_set_client';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| character_set_client | ujis  |
+----------------------+-------+
1 row in set (0.00 sec)
 
mysql>

という訳で、キャラクタセットは以下のようにして変更できるようです。

SET character_set_何とか = キャラクタセット


変更できない character_set_system

ところが、

mysql> set character_set_system=ujis;
ERROR 1193 (HY000): Unknown system variable 'character_set_system'
mysql>

となって、character_set_system は、知らないシステム変数という エラーメッセージが表示されて、変更できません。 変数の値がちゃんと得られるのだから、決して知らない変数ではなくて、 知っているけれど変更許可ができない変数だと思うので、 もうすこし別のエラーメッセージが妥当ではないかと思うのだが、 そんな些細なことはどうでもいいか。


戻る:.my.cnfを使ったユーザ別オプション指定

次へ:接続キャラクタセットの変更


フィードバック:

Name:
Comment:

There is no comment.

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us