2012年2月15日水曜日

MAMP MySQL の文字コード設定

MAMP の MySQL で、文字化けに苦しんでおりました。

MySQL の文字コードが UTF8 にできない。

こちらはネットで調べれば多くの情報が出てきたのですが、ほとんどの記事が古くて my.cnf を置く場所が違っていました。ファイルを置く場所は、/Applications/MAMP/conf/my.cnf でした。
ファイルの内容は下記のとおり。
[mysqld]
skip-character-set-client-handshake  
character-set-server = utf8  
[mysql]  
default-character-set=utf8
これで解決!
参考にさせていただいたサイト
takenoko1977の日記 2011-04-25 MAMP の使用ではまった事
ネットの片隅から感謝。

ターミナルから MySQL への SQL 文で日本語使うと文字化けする。

通常のターミナルでの日本語入力は問題ないのですが、 MySQL に接続してから日本語を入力すると文字化けします。ちなみに、テキストエディタで日本語を登録する INSERT 文を作成してからコピペして実行では、コマンド自体は文字化けしていますが、綺麗に登録されていました。
それでも困るので、いろいろいじっていると、ターミナルの文字コードを Shift JIS にするとコマンド上は文字化けしなくなりました。下記のスクリーンショットは iTerm2 での文字コード変更方法です。
ただコマンド上は文字化けしませんが INSERT すると文字化けするし、きちんと入っている日本語データの表示は文字化けしてしまうので、以前記事にしていた「Windows から UTF-8 の MySQL をコマンド操作」のコマンドを MySQL で実行することでとりあえず対応可能できました。
コマンド
mysql> set character_set_client = sjis;
mysql> set character_set_results = sjis;

ターミナル側で文字コードを変更する。

ただ、この方法だと普段のターミナルの文字コードも Shift JIS になっちゃいますが……
スマートな解決法法はないですかね?

0 件のコメント :

コメントを投稿