Linuxなどのメモ書き

MySQL 文字コード関連


Rev.13を表示中。最新版はこちら


1. 現在の設定の確認

[使用できる文字コード一覧の確認]
mysql> show character set;


[現在の文字コード設定の確認]
mysql> status
<略>
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
<略>


表1 文字コードフィールドの意味
フィールド
意味
Server
characterset
サーバーのデフォルトキャラクタセット。
Db
characterset
デフォルトデータベース(use xxxで選択したデータベース)で使用される文字コード。デフォルトデータベースがまだ選択されていない場合は、Server charactersetと同じものが表示される。
Client
characterset
クライアントから送られてきたクエリをどの文字コードで取り扱うかを指定。
Conn.
characterset
introducerがない文字列をClient charactersetからConn. charactersetに変換する。
詳細はこちら

mysqlコマンドはシステム変数の値を取得して表示しているだけなので以下のようにしても取得できる。
mysq> SHOW VARIABLES;

mysql> select @@character_set_client,
@@character_set_connection,
@@character_set_server, @@character_set_database;

2. 文字コードの設定

日本語を扱う場合には、サーバー側、クライアント側の文字コードを設定しておく必要がある。以下ではUTF-8に設定する例を示す。

2.1 サーバの文字コード設定

以下のいずれかにより設定できる。

1. configure&リコンパイル
# ./configure --with-character-set=utf8
を実行した後、リコンパイル。


2. デーモン起動時に引数で指定
# mysqld --default-character-set=utf8


3. /etc/my.cnfで設定
[mysqld]
default-character-set=utf8



設定すると以下のようになる。
mysql> status
<略>
Server characterset: utf8
Db characterset: utf8 (*1)
Client characterset: latin1
Conn. characterset: latin1
<略>

(*1)デフォルトデータベースを選択していないのでDb charactersetはServer charactersetと同じものが表示されている。

2.2 クライアント(mysql)の文字コード設定

以下のいずれかにより設定可能。

1. コマンド実行時に引数で指定
# mysql -u xxxx -p --default-character-set=latin1


2. /etc/my.cnfで指定
[mysql]
default-character-set=utf8



3. SQLで設定
SET NAMES utf8
or
SET CHARACTER SET utf8


設定すると以下のようになる。
mysql> status;
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8



PHPやPerl等からMySQLにアクセスする場合は、MySQLへの接続後、
SET NAMES utf8
or
SET CHARACTER SET utf8

のSQLを実行して、クライアントから送信される SQL ステートメントのキャラクタセットと、サーバからクライアントに返される結果セットのキャラクタセットを指定する必要がある。


最終更新 2006/06/07 18:31:45 - kztomita
(2006/05/08 20:14:46 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント