Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
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 ‥‥‥‥以下省略
戻る:バイナリの動作確認
フィードバック:
There is no comment.