mysql中常常出现对中文支持不友好的情况常见的错误“Illegalmixofcollationsforoperation”
下面我们规整一下mysql数据库中一共涉及到哪些字符集
character-set-server/default-character-set:服务器字符集,默认情况下所采用的
character-set-database:数据库字符集
character-set-table:数据库表字符集
一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集.
character-set-client:客户端的字符集
character-set-results:结果字符集
在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集
下面分享一个解决mysql中文字符乱码的解决方案:
修改mysql配置
vim/etc/mysql/my.cnf
查找“client”一项:
上面黄色关键词就是我们要找的client,紧接着在下面添加一行:default-character-set=utf8
保存退出配置文件.
然后关闭mysql服务,重新启动.
/etc/init.d/mysqlstop
/etc/init.d/mysqlstart
然后我们进入mysql,查看字符集
mysql>showvariableslike'character\_set\_%';
+--------------------------+--------+
|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|
+--------------------------+--------+
7rowsinset(0.00sec)
上面结果可以看到字符集默认支持utf8,我们在涉及到汉字的时候不会有乱码的情况.