问题背景:在CentOS7版Linux系统中刚安装的mysql,使用时发现,存入的数据中的中文乱码,都显示????。

这才发现MySQL刚安装完时忘了设置utf-8了。

进入mysql查看:

mysql>show variables like '%character%';


果然,character_set_database和character_set_results都是latin1,需要改成utf-8。

(character_set_filesystem那一项是binary(二进制文件,这是正常的文件编码格式),不需要改编码,这个可不能是utf-8编码的)

然后进入修改/etc/my.cnf添加:

在 [mysqld] 标签下加上以下内容:
character_set_server = utf8


(注意此处设置这一行就足够了,不要画蛇添足多加一行default-character-set = utf8,不然可能会报错,参考:http://blog.csdn.net/superit401/article/details/78124894


再重启mysql,再次查看MySQL编码:

mysql>show variables like '%character%';



参考:http://blog.csdn.net/superit401/article/details/78124894

http://blog.csdn.net/red4711/article/details/6007248


本文转载:CSDN博客