Open Source WEB

/etc/my.cnf の [mysql]グループで指定した場合、そのMySQLサーバに接続して 利用する全てのユーザのmysqlクライアントに反映される。

あるユーザは、ujisで良いかも知れないが、 別のユーザは sjis であって欲しいかもしれない。 こういう場合には、 /etc/my.cnf では全ユーザに反映されるので駄目である。

かといって、ユーザに長いオプションを打たせるのは良くない。

でも、MySQLでは、ちゃんとユーザ毎にオプションファイルを持っておくことが 可能になっている。形式は、/etc/my.cnfと同じであるが、~/.my.cnf というファイル名で、各自のホームディレクトリに、 隠しファイルとして置いておけばよい。

~/.my.cnf

ということで、

$ cd
$ cp /etc/my.cnf .my.cnf

とすることで、/etc/my.cnf をコピーした。

この .my.cnf の [mysql]グループの最後にある default-character-set の指定を、ujis から sjis に変更してみよう。

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
default-character-set=sjis

これで、再び mysqlクライアントコマンドを起動して、 キャラクタセットを調べてみよう。

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.1.10-standard-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

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>

/etc/my.cnf では ujis に指定されていたが、~/.my.cnf の方が 優先順位が高く、結局 sjis がセットされたことが分かる。


戻る:my.cnfを使った起動オプション指定

次へ:SET文によるキャラクタセットの変更


フィードバック:

Name:
Comment:

There is no comment.

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

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