mysql client乱码

大部分情况下数据库存储的都是Latin,都没有问题,今天突然想看看违禁词列表,发现居然乱码了。然后我换了一台机器就没问题,显然数据库中存储的内容不是乱码,然后换成putty也显示乱码,那么就不是gnome-shell的问题了。于是就是客户端设置问题了,使用最简单的一个my.cnf文件,发现显示正常。

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

[mysqld_safe]

log-error=/var/log/mysqld.log

然后大致能确定就是mysql升级导致的。

[mysql]
default-character-set=utf8

在mysql 5.0以下(包括5.0),设置这个参数以后可以少很多乱码问题,现在发现mysql 5.1不支持了。应该是上次从Fedora 12升级到Fedora 13的时候Mysql也跟着升级了。

于是将上面两行注释掉乱码就解决了。后来发现即使将[mysql]改为[client]或者通过命令行

mysql –default-character-set=utf8 -h127.0.0.1 -uroot -pxxxxxx fb

也没有解决问题。初步看起来像是不支持default-character-set参数似的,或者与其他参数有冲突?看了mysql的文档,也没有找到答案。