MySQL [ERROR 1366 (HY000)] 中文无法显示解决办法

本来以为MySQL用UTF-8编码应该不会出现中文错误的问题,但是在今天导入含有中文的CSV文件的时候还是遇到了MySQL [ERROR 1366 (HY000)]。在出现问题时,搜索引擎永远是FirstAid。搜索一番,用gbk可以解决。
停掉MySQL服务,修改my.ini文件,修改default-character-set=gbk和default-character-set=gbk。然后重启服务,进入MySQL,使用status命令查看发现

Server characterset:    gbk

Db     characterset:    utf8

Client characterset:    gbk

Conn.  characterset:    gbk

Db characterset的字符集还是utf8,所以仍出现中文乱码。
进入对应的DATABASE修改:

ALTER DATABASE dbname character SET gbk;

USE dbname;

status;

还是不行。难道是因为里面已经有了数据?再试试把TABLES也修改了!

ALTER TABLE tbname character SET gbk;

USE dbname;

status;

最后再尝试把CSV文件导入:

USE dbname;
load data infile '/tmp/sheet.csv'
into table tbname
fields terminated by ','  optionally enclosed by '"' escaped by '"' 
lines terminated by '\r\n';

BINGO.

打赏

点赞