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的文档,也没有找到答案。