2014年2月10日月曜日

MySQLの文字コード対応(utf-8に変更する)

テスト期間中なのですが、まぁなんだかモチベーションが下がってるのでとりあえずPCの前でくだらないようなことでもしておこうかと思いながら、ずいぶん前に立てておいた勉強用のサーバーを起動させてAndroidでもデータベース使うし、データベースの勉強をしていてつまずいたところを今回はメモしていこうと思います。


mysql>show variables like 'char%';

でまずは今使われている文字コードを確認。自分のはこんな感じになっていました。



+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


なのでこちらのサイトを参考にしながら、

sudo vi /etc/mysql/mysql.cnf

から

[client] default-character-set = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8



を追記。

んで再起動。再起動のコマンドはこれです。rootで

/etc/init.d/mysql restart

そしてMySQLの文字コードを再び確認。んで出てきたのがこちら。


+--------------------------+----------------------------+
| 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       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+



character_set_database   | latin1      、character_set_server     | latin1 。。。。。
くそ。完全には除き切れなかったか。。。 


めんどくさいですが個別に対応します。

mysql>set character_set_database = utf8;
mysql>set character_set_server  = utf8;


を実行。もう一度確認。



+--------------------------+----------------------------+
| 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       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+



よし。全部対応出来ました。
実際全部setでやればいけるちゃあいけるんでしょうね。

ではでは。


0 件のコメント:

コメントを投稿