操作系统环境: RHEL4.6、MySQL5
现象: 安装了Tomcat作为web服务器,部署了一个项目,通过jdbc连接到mysql数据库。但是发现中文输入输出乱码现象。
解决步骤:
1. 找到mysql的配置文件
网上说,mysql的配置文件就是/etc/my.cnf。但是这个文件并不一定存在。因此,你需要使用find命令查找cnf文件。记得不要去找my.cnf因为它不一定存在,而应该找*.cnf。
# find / -iname '*.cnf' -print
找到之后,复制一个出来 # cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
2. 打开my.cnf修改编码
# vi /etc/my.cnf
在[mysqld]下添加
default-character-set=utf8
在[client]下添加
default-character-set=utf8
3. 重启mysql
# ps -aux | grep mysql
4.登录mysql看看修改成功否
# mysql
mysql> show variables like 'character_set_%';
mysql> show variables like 'collation_%';
5. 修改已经部署的数据库编码
# mysql
mysql>use dbname
mysql>alter database dbname character set utf-8;
或者修改这个数据库的文件 $mysql_data_path/dbname/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
为
default-character-set=utf8
default-collation=utf8_general_ci
重启mysql
6. 以后创建数据库时,为了保险起见,你可以指定编码创建:
# mysql
mysql>create database dbname character set utf-8;
7. 检查你的Java应用的JDBC连接字符串
设置好数据库的编码后,在连接数据库时候,应该指定connection的编码,比如使用jdbc连接时,指定连接为utf8方式。
本文转至[http://www.oklinux.cn/html/sql/other/20080522/54796_2.html],有删减。