导入数据的时候,MYSQL 报错:Data too long for column

解决办法:

在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的过程中,发现很多人都遇到了,不过多数地方没有提到如何解决之,所以在这里整理了一下,希望对朋友们有所帮助。

你可能感兴趣的:(sql,mysql,windows,Google,脚本)