MySQL安装完成后默认编码为latin1,并不适合中文应用。 因此我们通常用下面的SQL语句创建数据库:
$ CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
但有些框架创建测试数据库时并不会像这样指定编码,因此创建的数据库编码为latin1, 导致加载UTF8数据时就会出错。
因此只能修改MySQL服务器的默认编码设置,编辑my.cnf,在[mysqld]节添加以下两行:
$ sudo vi my.cnf
[mysqld]
...
collation_server = utf8_general_ci
character_set_server = utf8
保存退出后重启mysqld即可,登录mysql确认一下:
mysql> show variables like 'collation-server';
+------------------+-----------------+
| Variable-name | Value |
+------------------+-----------------+
| collation-server | utf8-general-ci |
+------------------+-----------------+
1 row in set (0.00 sec)
mysql> show variables like 'character-set-server';
+----------------------+-------+
| Variable-name | Value |
+----------------------+-------+
| character-set-server | utf8 |
+----------------------+-------+
1 row in set (0.00 sec)
PS:如果在Windows下有乱码,可以在my.cnf中增加:
[mysqld]
...
init_connect=SET NAMES utf8