MySQLの文字コードについて

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ありがちな お話。

文字コードを気にせず、とりあえずMySQLを構築。
構築後に 文字コードが異なる為に、文字が化けしてトラブルに。。。

「文字コードは、全て揃えましょう!」というのが基本になります。

設定するところは、複数ありますので、しっかり設定・確認をしましょう。
・サーバ側
・クライアント側
・接続の文字コード
・データベース
・テーブル

 

【文字コード確認】

◆サーバ側
SHOW GLOBAL VARIABLES LIKE ‘character%’;

◆クライアント側
SHOW VARIABLES LIKE ‘character%’;

◆データベース
SHOW CREATE DATABASE データベース名;

◆テーブル
SHOW CREATE TABLE テーブル名 \G

 

【文字コードの設定】
◆パラメータ
character_set_client

character_set_connection

character_set_database

character_set_results

character_set_server

character_set_system

注意事項

mysql5.5.3からは[mysqld]の文字コードの設定に「default-character-set」は使えません。
「character-set-server」になります。

◆データベース
create database データベース名 character set ‘utf8’;

◆テーブル
create table テーブル名 (カラム1, カラム1 …) character set ‘utf8’;

 

【文字コードを変更する場合】
基本的に作り直しです。
変更箇所は、パラメータ、データベース、テーブルだけでなく、
データの入れ直しも必要になりますので!

※文字コード変更前、絶対にバックアップの取得をしてください!

投稿者プロフィール

ito
プログラマー、DBエンジニアを経て、2013年9月よりスカイアーチネットワークスに在籍しております。

現在、サーバ・ネットワークいろいろと奮闘中です。

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

プログラマー、DBエンジニアを経て、2013年9月よりスカイアーチネットワークスに在籍しております。 現在、サーバ・ネットワークいろいろと奮闘中です。