Ubuntu下MySQL中文乱码解决

对于MySQL中文乱码问题(我的是Ubuntu Linux系统),在网上看了很多解决方案,很多说要修改MySQL的配置文件,于是我按照下面的方法修改:
方法来自:http://www.cnblogs.com/flyingcloude/archive/2012/09/09/2677569.html

修改/etc/mysql/my.cnf
sudo gedit /etc/mysql/my.cnf

在my.cnf文件中的[client]段和 [mysqld]段加上以下两行内容:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8

重新启动MySQL:sudo /etc/init.d/mysql restart

查看一下现在mysql的编码
mysql>show variables like 'character%';
+--------------------------+----------------------------+
| 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 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

我发现,修改之后MySQL无法启动了,试了很多方法都不行。最后发现,将配置文件还原后,MySQl就能正常启动了!这个很奇怪,真不知道是怎么回事。我修改数据库的编码方式为utf8后,仍然不行。我查询出的的character_set_server总是latin1字符集。
最后经过N此试验发现,character_set_server=latin1没关系。备份之前的数据库,然后重建数据库,重建时,选择字符集为 utf8 - default collation ,然后导入数据,发现中文不在乱码了。见下图所示:

Ubuntu下MySQL中文乱码解决_第1张图片

但是对于已经存在的数据库,通过修改数据库Alter DataBase...还是不能解决乱码问题。

而且对于网上说的,在mysql命令行中使用SET命令重新设置字符集,根本没用,关闭连接后,再次连接,查询发现,字符集又变成latin1了,很是郁闷。网上的设置方式如下(我没成功):

mysql> set character_set_server=utf8;
mysql> set character_set_database=utf8;

当前我只找到了这个方法——重建数据库。如果有更好的方法,多谢赐教!


 

 

你可能感兴趣的:(Ubuntu下MySQL中文乱码解决)