はじめに

前回は、MacにWordpress環境を構築するため、MAMPをインストールしました。
MAMPを使ってMacにwordpressをインストールする手順

MacにMAMPをインストールするまでは順調だったのですが、MySQLを使った時に、varchar型のカラムに格納した日本語が文字化けをしてしまいました。

その際にちょっとだけはまったので、その対処法を残しておきます。

文字セットの確認

ターミナル(コンソール)を開き、MySQLにログインします。
$mysql -u root -p

文字コードの確認をします。utfとlatin1が混在していますね。
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | latin1                                     |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | latin1                                     |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
+--------------------------+--------------------------------------------+

文字セットの変更

character_set_databaseとcharacter_set_serverが「latin1」となっていたため、「utf8」に変更します。
mysql> set character_set_server = utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_database = utf8;
Query OK, 0 rows affected (0.00 sec)

再度、文字コードを確認し、「utf-8」に変更されていれば成功です。
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | utf8                                       |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | utf8                                       |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
+--------------------------+--------------------------------------------+

MySQL設定ファイルの作成

今回は、MySQLの文字コードを「UTF-8」に統一したいと思います。
そこで、MySQLの設定ファイルで文字コードの設定を行います。

MAMPインストール直後は、MySQLの設定ファイル「my.cnf」が作成されていません。 そのため、テンプレートファイルをコピーして、設定ファイルを作成します。
$ cp -p /Application/MAMP/Library/support-files/my-large.cnf /Application/MAMP/db/mysql/my.cnf

MySQL設定ファイルの修正

設定ファイルに文字コードの設定を行います。 先ほど作成した「/Application/MAMP/db/mysql/my.cnf」をvi等で開き、以下のコードを追加します。
[client]
default-character-set=utf8
[mysqld]
skip-character-set-client-handshake
init-connect=SET NAMES utf8

MAMPの再起動

MAMPのウィンドウから、「サーバを停止」し、「サーバを起動」し、MAMPを再起動します。
20141105_mamp_02

20141105_mamp_01

DB、テーブル、カラムの照合順序の変更

ブラウザで、phpMyAdminを開きます。
DB、テーブル、カラムの照合順序をすべて「utf8-general_ci」に変更してください。

最後に

作成、修正したmy.cnfですが、再度開いてみると、先ほど追加した内容が削除されていました。 照合順序を変更したからでしょうか。 ということは、my.cnfは修正しなくてもいいかもしれませんが、検証していないためよくわからないのが現状です。