Linux下Mysql乱码解决方案
最近在做ProjectForge的源码修改,当然改用了MySQL数据库,但改过之后,有一个蛮讨厌的问题,当然是乱码了。
PF这边使用的是UTF-8编码,按照设想UTF-8应该是一切正常的啊,原来还是需要在MySQL这边做一些设定:
彻底解决方案:
修改Linux下的/etc/my.cnf文件,我的Linux版本为RHEL6.1,MySQL是本地源安装的,版本号为5.1.52,这里我贴出我的/etc/my.cnf文件,其中一部分是我手动加的,我会加以说明
$sudo emacs /etc/my.cnf
#配置客户端[client]#默认字符集为utf8default-character-set=utf8#配置服务器端[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0#默认字符集为utf8default-character-set=utf8#设定连接数据库时使用utf8编码init_connect='SET NAMES utf8' #设定使用的数据库存储引擎default-storage-engine=INNODB[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
$sudo /etc/init.d/mysqld restart
mysql> \s
mysql> \s--------------mysql Ver 14.14 Distrib 5.1.52, for redhat-linux-gnu (i386) using readline 5.1Connection id: 11Current database: projectforgeCurrent user: root@localhostSSL: Not in useCurrent pager: stdoutUsing outfile: ''Using delimiter: ;Server version: 5.1.52 Source distributionProtocol version: 10Connection: Localhost via UNIX socketServer characterset: utf8Db characterset: utf8Client characterset: utf8Conn. characterset: utf8UNIX socket: /var/lib/mysql/mysql.sockUptime: 2 hours 55 min 24 secThreads: 9 Questions: 620 Slow queries: 0 Opens: 68 Flush tables: 1 Open tables: 61 Queries per second avg: 0.58--------------mysql>