在QQ群里问了一些高手,同时参考了这篇文章:http://huangyunbin.iteye.com/blog/1113983,终于把这个问题搞定了。
首先,我用的是zip包的Mysql,直接解压使用的,网上说修改my.ini或者my.cnf在我机器上根本就找不到。但是my.ini这个东西是可以自己添加的。将mysql目录中的my-default.ini文件复制一份(原来的模板还是留一份不要乱动的好),重命名为my.ini。打开my.ini,在最后添上如下两行:
[mysql]
default-character-set=utf8
保存。同时要检查 ./data/performance_schema目录下的db.opt文件中有这样两行:
default-character-set=utf8
default-ollation=utf8_chinese_ci
之后是在数据库里进行设置。在mysql中输入
mysql> show variables like ''char%'';
可以看到我的数据库中字符集是酱婶的:
遵照大部分网友的建议,除了filesystem那个binary不动,其它全部改成utf8好了。
MYSQL>set character_set_client = 'utf8';
MYSQL>set character_set_connection = 'utf8';
MYSQL>set character_set_database = 'utf8';
MYSQL>set character_set_results= 'utf8';
MYSQL>set character_set_server='utf8';
OK。可以再次执行show variables like ''char%'';查看修改结果。现在字符集都是UTF-8了。
最后一步,要修改之前乱码的表,将字符编码也修改为UTF-8:
MYSQL>alter table 表名 modify 列名 字段类型 character set utf8;
这样就完成啦。再select一下之前的表,中文是不是都变过来了?