mysql中文乱码问题

      虽然电脑装了mysql,但是一直没怎么去研究修改该编码的问题,平时需要使用汉字的时候,都是用拼音来代替的,因为是在做一些简单的语法练习,所以也没怎么太关注这个问题。
      我的数据库已经有了一些乱码的数据表,在网上百度了一些方法,比如:
mysql> set names utf8;#修改编码为utf8
这些根本不管用,结果还是乱码。还有一些就是先看看数据库目前都是处于哪些编码状态:
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>
然后使用类似如下的命令,将不是utf8的编码的,依次修改成utf8
mysql> set character_set_database=utf8;
貌似这样的方法重启之后,又会还原。后来又看到一个方法,就是修改配置文件来完成的,这种我试了下,重启之后不会还原。
先是关闭mysql服务(网上是用 service mysql stop,试了,用不了)
buzhidao@nongfushanquan-K55VD:~$ sudo /etc/init.d/mysql stop
然后改配置文件
buzhidao@nongfushanquan-K55VD:~$ sudo gedit /etc/mysql/my.cnf
然后添加下面的内容(末尾不要有多余的空格什么的,我不小心在末尾多敲一个空格,结果没生效):
character_set_server=utf8  
init_connect='SET NAMES utf8'

技术分享

最后打开mysql服务(网上是用 service mysql start,试了,用不了)

buzhidao@nongfushanquan-K55VD:~$ sudo /etc/init.d/mysql start

于是乎我就开始建表了,结果发现最后中文还是乱码,我就查看了一下建表的语法,发现默认编码还不是utf8,

技术分享

然后我又新建一个表,这次我指定了表的编码,最后中文部分可以正常显示。

技术分享


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。