最近往mysql中导入一个2M多的数据db.sql,由于.sql 文件不是自己写的,在win下用mysql命令行客户端导入时一直提示错误

开始导入一直崩溃:MySQL server has gone away

查找网上资料在my.ini中添加:max_allowed_packet = 10M  顺利解决

继续导入,又提示

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '95鏋夎垂闈掓槬婕?',374,'757','2010-10-' at line 1

错误提示单引号附近有问题,但是我查看文档发现这地方的单引号已经用反斜杠转义了,应该不会有问题,为了调试过去我索性把单引号删除,测试还是不行,

error:incorrect string value:'\xB1250\xE9\x83...' for column 'good_name' at row 1.

我查看.sql文件的编码格式是utf-8,没有问题,我建表的时候指定字符格式是utf-8

突然想到刚才因为在客户端插入中文数据,执行了set names gbk

马上设置成utf-8 set names utf8

重新导入:source  c:/db.sql

顺利通过

总结:

1.在导入或执行一个过大SQL语句是,相应的max_allowed_packet参数应增大

2.导入数据时,数据文件编码要和数据表编码、mysql客户端编码一致

 

posted on 2013-01-04 13:12  weeln  阅读(195)  评论(0编辑  收藏  举报