Open Source WEB

mysqlでの文字コードの確認

やっと本来の目的である日本語文字に直接関係する話です。

mysqlコマンドを使って、文字コード関係はどのような設定になっているか確認してみましょう。

mysqlクライアントコマンドが起動されている状態で、 MySQLの character_set_ で始まるシステム変数を見てみます。

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

変数を引用符で括っています。

下線は任意の一文字を意味するのだが、ここでは下線として認識させるために、 \でエスケープしています。

最後の%は任意の文字列にマッチします。

ということで、'character\_set\_%' で、character_set_ で始まるものにマッチします。

マッチのためには、LIKE を使っています。LIKEは、MySQLというか、 SQLでは常識かと思うので説明は略します。

出力結果から、6つの文字関係のシステム変数があることが分ります。 いますぐシステム変数の意味を知りたい人は、 オンラインマニュアルの検索でシステム変数名称を入れて検索してみてください。 たぶん一発で該当ページが見つかるはずです。

調べると、いっぱいあり過ぎて困ることと思います。 今は、Character Set Support http://dev.mysql.com/doc/mysql/en/charset.html という章まであるくらいです。いや、それくらい沢山情報があるため、 初心者はめんくらってしまいます。

さて、今は何も設定していない情况で動かしているので、 値(Value)が、character_set_system を除いて、全て latin1になっています。 つまり、英語を扱うときの環境になっているので、 日本語を扱わなければならない場合には都合が悪い環境です。

ここで知っておくべきことは

文字コードの状態は、システム変数で決まる

ということです。

ここで、システム変数の意味を書いてしまうと、 とても長くなってしまうので止めておきます。 しかし、日本人が日本語を使っていくためには、 ちゃんと日本語が使える環境になるように色々な設定が必要です。 まあ、それをあれこれ書いていこうというのが、 この連載『MySQL日本語の旅』の目的なんです。

サーバ起動時の指定、クライアント起動時の指定により、 これらの変数の値は変化し、MySQLの文字処理、 特に日本語文字列の扱いに色々影響を及ぼします。 正しく指定しなければ、当然「文字化け」になります。

肝心なことは、システムとしての文字コードは utf8 で、それ以外は 全部英語(世界標準)ということです。 そう、今、世界の標準データベースを標準のまま使おうとしているので、 英語環境なんです。英語しか扱わない人は、このまま使えば大丈夫でしょう。

しかし、幸か不幸か日本語という言語をデータベースでも扱おうとすると、 環境設定をしたり、その他色々気をつけないといけないことがあります。


その他のシステム変数

その他のシステム変数も知りたいときは、LIKE以降を省略してください。 ただし、とても沢山のシステム変数(全部)が出て来ます。

mysql> show VARIABLES;
+---------------------------------+-----------------------------------------------------------
| Variable_name                   | Value 
+---------------------------------+-----------------------------------------------------------
| back_log                        | 50    
| basedir                         | /usr/local/MySQLs/mysql-standard-4.1.9-pc-linux-gnu-i686/
| binlog_cache_size               | 32768                               
| bulk_insert_buffer_size         | 8388608                           
| character_set_client            | latin1

‥‥‥‥以下省略

戻る:バイナリの動作確認

次へ:バイナリでのシャットダウン


フィードバック:

Name:
Comment:

There is no comment.

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

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