MySQL 文字化けを防ぐ、文字コードの確認と設定

 文字化けを防ぐために、文字コードの確認と設定を行う。

 

■現在の文字コードの設定を調べる

mysql> show variables like 'character_set%';

 

または、

mysql> status

 

 

■データベースの文字コード設定を調べる

データベースごとに文字コードを設定できるので、現在の文字コードを調べる。

(テーブルごとではなく、データベースごと)

 mysql> show create database データベース名;

 

文字コードを指定してデータベースを作るには、

mysql> create databaase xxxdb default character set utf8; 

 

 

■テーブルの文字コード設定を調べる

テーブルごとに文字コードを設定できるので、現在の文字コードを調べる。

mysql> show create table テーブル名 \G 

 

 

■文字コードを設定する

/etc/my.cnf を編集する。

[client]
default-character-set=utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[client]と[mysqld]の設定に、上記の記述を加える。

utf8: UTF-8を指定するとき。

sjis: Shift JIS を指定するとき。

ujis: EUC JP を指定するとき。

 

skip-character-set-client-handshakeの指定は、MySQLが勝手に内部変換しないようにするため。 

 

■/etc/my.cnfが無いとき

インストールしたMySQLの中のサンプルをコピーする。

# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

 再起動して有効になる。

 

 

■MySQLを手動で停止・起動する

 マニュアルで停止する。

# /usr/local/mysql/bin/mysqladmin shutdown

マニュアルで起動する。

# /usr/local/mysql/bin/mysqld_safe --user=mysql &