天天看点

MySQL字符集的问题总结

一般我们在配置文件my.cnf中添加配置:

<code>[client]</code>

<code>default-character-</code><code>set</code> <code>= utf8 </code>

<code>[mysqld]</code>

<code>default-character-</code><code>set</code> <code>= utf8</code>

<code>character-</code><code>set</code><code>-server = utf8</code>

<code>init-connect = </code><code>'SET NAMES utf8'</code>

<code>collation-server = utf8_general_ci   </code><code>#可选的</code>

创建数据库时指定字符集:

<code>create database zabbix character </code><code>set</code> <code>utf8 collate utf8_bin;</code>

<code></code>

在mysql连接状态查看数据库的字符集:

<code>show create database zabbix_office;     </code><code>#查看创建数据库的字符集</code>

<code>show variables like </code><code>'character%'</code><code>;       </code><code>#查看mysql默认的字符集</code>

修改字符集:

<code>SET character_set_client = utf8 ;  </code>

<code>SET character_set_connection = utf8 ; </code>

<code>SET character_set_results = utf8 ;  </code>

<code>SET character_set_database = utf8 ;       </code>

<code>SET character_set_server = utf8 ;   </code>

<code>SET collation_connection = utf8 ;  </code>

<code>SET collation_database = utf8 ;   </code>

<code>SET collation_server = utf8 ;</code>

客户端连接仍然看到的是乱码,这时要看客户端的字符集是否和服务端的字符集一致,如果不一致的话要修改客户端字符集:

<code>SET NAMES </code><code>'utf8'</code><code>;</code>

修改已创建数据库的默认字符集,这个没啥好办法,只能导出数据,删库然后重新建库指定默认的字符集。

本文转自 王家东哥 51CTO博客,原文链接:http://blog.51cto.com/xiaodongge/1923961