修改my.ini,如果此文件不存在,就在MySQL安装目录下(e.g. D:\mysql-5.1.34-win32)建立此文件
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=gbk
default-character-set=gbk
[mysqld]
default-character-set=gbk
稍微解释一下,[mysql] default-character-set=gbk就是告诉MySQL,现在客户端传过来的SQL包含有中文字符。
而[mysqld] default-character-set=gbk就是把MySQL的数据库改为中文编码。
用以下命令可以清晰地看到效果:
mysql> show variables like 'char%';
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.1.34-win32\share\charsets\ |
+--------------------------+---------------------------------------+
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.1.34-win32\share\charsets\ |
+--------------------------+---------------------------------------+
重启MySQL服务器后,以后建立的数据库和表都可以接受中文。
值得一提的是,在修改my.ini之前建立的数据库和表还是不能接受中文。需要找到数据库的dt.opt文件,比方以前建立过
create database mydb;
那么在D:\mysql-5.1.34-win32\data\mydb下,修改dt.opt
default-character-set=gbk
default-collation=gbk_chinese_ci
default-collation=gbk_chinese_ci
再重启服务器就可以了。
关于表的话,当然也可以用Alter命令修改,但更简单的方法就是drop再create一次就完了。
如果用Hibernate连接,只要简单地作如下配置
<property name="connection.url">jdbc:mysql://localhost:3361/mydb</property>
并不需要加上?useUnicode=true&characterEncoding=GBK
No comments:
Post a Comment