【MySQL】データベースの文字コードをlatin1からutf8にする

Author:

ついPHPのソフトとかインストールして、インストール終わって確認すると
?????となっていたり。
文字コードの設定がlatin1になっているとこうなりますよね。

この場合の対処方法。

PHPMyAdminが使えるのならプルダウンで変えられるのでいいのですが
それが使えない場合、まずは/etc/my.cnfを書き加えましょう。
設定はバージョンにもよります。mysql5.5だと一番上のdefault-character-set = utf8は読み込めなかったので削除。

default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = set names utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set = utf8

[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

んで、mysqlにログインして、
alter database database_name default character set utf8;
set character_set_server = utf8;

これで全部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 | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

カラムのほうはこんな感じ。
ALTER TABLE xxxxxxx MODIFY user VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_general_ci;

Share on Facebook
Pocket