设为首页 收藏本站
查看: 454|回复: 0

[经验分享] 导入数据的时候,MYSQL 报错:Data too long for column

[复制链接]

尚未签到

发表于 2016-10-20 02:24:08 | 显示全部楼层 |阅读模式
解决办法:

在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的STRICT_TRANS_TABLES,去掉,
或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

注释掉,然后重启mysql就ok了

=================================================================
从MySql5中运行本地脚本创建数据库,当插入中文字段时发生“data too long for column”错误。上网一查,发现多字节用户大都碰到了这种情况。google搜索网上的解决方法大都是要将数据库的编码方式为GBK或UTF8,可我在安装MySql时就选择了UTF8格式。原来错误原因是本地的脚本文件不是UTF8编码的,用记事本或UltraEdit将编码转为UTF8后问题解决。再次强调,JSP页面,数据库联接接方式,数据库创建,…,都须一致使用UTF8编码!

BTW,MySql最近借着Web2.0的浪潮风头很劲啊,techn orati(好像这几天被GFW filter了),flickr,del.icio.us等一批网站都是用了MySql。MySql还专门在首页开了一大块来炫耀。
posted on 2006-07-14 19:12 Duran's technical life 阅读(3455) 评论(4)  编辑  收藏 所属分类: 技术积累
Comments

    *
      # re: 关于MySql5的“data too long for column”错误
      new
      Posted @ 2006-12-28 12:45
      <b>test</b>  回复  更多评论   
    *
      # re: 关于MySql5的“data too long for column”错误
      yadan
      Posted @ 2007-05-03 23:24
      关于这个问题进一步探讨了一下,博主有空看看。
      http://blog.sina.com.cn/u/53b0d5dc0100097v
        回复  更多评论   
    *
      # re: 关于MySql5的“data too long for column”错误
      wuchuanyu
      Posted @ 2007-09-25 16:13
      @new
      我直接在mysql里输入,也碰到这个问题是怎么回事?  回复  更多评论   
    *
      # re: 关于MySql5的“data too long for column”错误
      试试
      Posted @ 2007-11-23 19:49
      レゾンデートル.mp3  回复  更多评论   
=====================================================
--------------Copyright ayiiq180---------2005-11-24----------------

MySQL 发布也有一段时间了,我自己的小站一直用的MySQL4.1,运转正常,不过由于看到MySQL对视图、触发器、存储过程等等的支持,忍不住下载了一个 windows版本,装在自己机器上试验,准备把小站迁移到MySQL5。没想到的是这个过程居然花费了整整一个下午。

1.

安装不在罗嗦,不管是下载的安装包或者解压非安装版安装都非常容易,自己注册windows系统服务即可,重点是my.ini文件的设置,其中,包含了字符集的设置,也就是MySQL的默认字符集,这里涉及到两个地方,注意,这是windows下的设置:

[mysql]
default-character-set=gbk
[mysqld]
default-character-set=gbk

2. 厄运开始。在导出了MySQL4的数据库后,我非常随意的将SQL脚本执行了,连输出结果都没看,以为大功告成了,然而,在我敲入'http: //localhost:8080'的时候,我赫然发现所有本该有文字的地方空空如也,马上在MySQL中查询,果然,数据库中输出表存在,所有数据一无所有。于是乎,我重新将INSERT语句单独执行,不幸的是,所有只要包含中文的地方,一概出现了一行错误提示“Data too long for column 'xx' in row 1”,随之的结果就是所有前面执行的东西全部rollback。想当然的我认为是字符集设置问题,检查了无数次my.ini,试了无数字符集,仍无法插入一个中文字符,遂GOOGLE,果然发现只要非English语系都有这个问题,解决办法暂时只能是在INSERT前执行:

SET NAMES GBK;

执行了以上语句后,一帆风顺的插入了数据库,CommandLine下Select欢快的显示出了所有数据,中文一切正常。
3. 厄运继续我兴奋的敲入了我敲了无数遍的URL,突然发现所有中文字符全都是"?",难道是查询语句问题,检查若干遍没发现问题,试着在my.ini中设置了client的字符集也没有效果,突然想到,是否对client来说,查询返回的结果也需要指定字符集?
4. 柳暗花明我尝试性的在我php的MySQL连接字符串下执行了如下语句:

mysql_query("SET NAMES GBK");

终于,在浏览器中我看到了熟悉的文字:)
5. 总结:对于以上问题,在我GOOGLE的过程中,发现很多人都遇到了,不过多数地方没有提到如何解决之,所以在这里整理了一下,希望对朋友们有所帮助。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-288435-1-1.html 上篇帖子: 尝试在rails中调用MySql的stored procedure,不过最终放弃了。 下篇帖子: mysql中对已存在的表做增/删/改列的相关操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表