Linux修正MySQL中文乱码问题

操作系统环境: 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],有删减。

 

 

 

你可能感兴趣的:(技术,MySQL,Linux,JDBC,Tomcat,应用服务器)