Linux下Mysql乱码解决方案
程序员文章站
2022-07-15 14:49:30
...
最近在做ProjectForge的源码修改,当然改用了MySQL数据库,但改过之后,有一个蛮讨厌的问题,当然是乱码了。
PF这边使用的是UTF-8编码,按照设想UTF-8应该是一切正常的啊,原来还是需要在MySQL这边做一些设定:
彻底解决方案:
修改Linux下的/etc/my.cnf文件,我的Linux版本为RHEL6.1,MySQL是本地源安装的,版本号为5.1.52,这里我贴出我的/etc/my.cnf文件,其中一部分是我手动加的,我会加以说明
内容如下:
然后需要重启mysql使配置文件生效:
然后再次登录mysql:
显示内容如下:
发现都改成了UTF8字符集了,现在就不用再怕乱码了。
当然你的mysql配置文件也不一定存储在/etc/my.cnf,也可能是etc/mysql/my.cnf等,修改方法都大同小异,在此笔者就不一一说明。
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] #默认字符集为utf8 default-character-set=utf8 #配置服务器端 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #默认字符集为utf8 default-character-set=utf8 #设定连接数据库时使用utf8编码 init_connect='SET NAMES utf8' #设定使用的数据库存储引擎 default-storage-engine=INNODB [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
然后需要重启mysql使配置文件生效:
$sudo /etc/init.d/mysqld restart
然后再次登录mysql:
mysql> \s
显示内容如下:
mysql> \s -------------- mysql Ver 14.14 Distrib 5.1.52, for redhat-linux-gnu (i386) using readline 5.1 Connection id: 11 Current database: projectforge Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.1.52 Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 2 hours 55 min 24 sec Threads: 9 Questions: 620 Slow queries: 0 Opens: 68 Flush tables: 1 Open tables: 61 Queries per second avg: 0.58 -------------- mysql>
发现都改成了UTF8字符集了,现在就不用再怕乱码了。
当然你的mysql配置文件也不一定存储在/etc/my.cnf,也可能是etc/mysql/my.cnf等,修改方法都大同小异,在此笔者就不一一说明。
上一篇: Chrome, Firefox, Opera浏览器linux下性能比较
下一篇: vm_info