您的位置:首页 > 数据库 > MySQL

Mysql 1366 中文显示错误修改方法

2012-11-05 15:36 288 查看
mysql中文显示问题[ERROR 1366 (HY000):错误

mysql[ERROR 1366 (HY000):错误]中文显示问题

mysql的字符集用utf8也解决不了中文的编码问题,用gbk才能解决。所以总结一下如果更改编码:

停掉mysql服务,修改my.ini文件,修改两处default-character-set=gbk。启动mysql服务。再次插入,还是有问题。

用status看了一下:

mysql> status;

原来

Connection id: 25

Current database: order_movie_ticket

Current user: root@localhost

SSL: Not in use

Using delimiter: ;

Server version: 5.1.45-community MySQL Community Server (GPL)

Protocol version: 10

Connection: localhost via TCP/IP

Server characterset: utf8

Db characterset: utf8

Client characterset: gbk

Conn. characterset: gbk

TCP port: 3306

Uptime: 6 min 31 sec

虽然Client characterset和Conn. characterset都改成了gbk, Db characterset的字符集还是utf8,所以仍出现中文乱码。

所以要把它设回gbk,用alter命令。

mysql> alter database order_movie_ticket character set gbk;

因为只改了order_movie_ticket这一个db,所以直接用status查结果还是Db characterset的字符集为utf8,但是若转入order_movie_ticket,只看他自己的

mysql> use order_movie_ticket;

再用status看一下,这回对了。再次插入数据,这回正确了。

要注意的是以上改的前提是database order_movie_ticket里是空的,如果它的一些表里已经有数据就不能只改db了,还要用alter命令改相应的table,

如:mysql> alter table movie character set gbk;

可以通过如下命令

mysql> show create table movie; 来看表的create命令形式的结构和表的字符集。

----------------------------------------------------------

movie | create table 'movie' (

'movie_id' bigint(20) not null auto_increment,

'name' varchar(50) not null,

'actor' varchar(100) not null,

'director' varchar(30) not null,

'classification' varchar(30) default null,

'story' varchar(200) default null,

'valid' char(1) not null default 'Y',

primary key ('movie_id')

) ENGINE=InnoDB DEFAULT CHARSET=gbk

------------------------------------------------------------

这样改应该就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  character database Jsp MySQL
相关文章推荐