`
famoushz
  • 浏览: 2962663 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

相关推荐

    ERROR 1406 : Data too long for column 解决办法

    在MySQL数据库操作中,当你尝试插入或更新一行数据时,如果某个字段的值超过了该字段定义的最大长度,系统会抛出“ERROR 1406 : Data too long for column”的错误。这个错误提示非常直接,意味着你试图输入的数据在...

    MySql写入中文错误解决

    在 MySQL 中,当我们尝试导入中文字符时,总是报错“Data too long for column XX at row n”。这个问题的主要原因是 MySQL 的默认编码为 gb2312,而我们通常使用的 UTF-8 编码,这两个编码之间的差异导致了这个问题...

    mysql5.0乱码的解决实例

    "data too long for column"错误提示则表明尝试存储的数据超过了列的最大长度,这与字符集编码有关,也可能导致乱码。下面我们将深入探讨如何识别和解决这些问题。 首先,我们要理解MySQL中的字符集。字符集定义了...

    Mysql中文乱码问题完美解决方案.docx

    - `com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column` 错误表示数据长度超过了列的允许长度,这通常不是字符集问题,而是字段长度不足。需检查对应列的定义并调整其大小。 7. **...

    大牛总结 MySql常见错误集锦

    10. 错误1406: Data too long for column 'column_name' at row 1 插入的数据长度超过了列的最大允许长度。调整数据的大小,或者增大列的长度限制。 这些错误只是MySQL使用过程中可能遇到的一部分,理解和解决这些...

    如何解决MYSQL数据中文乱码问题.docx

    如果字段长度足够,但插入中文字符时仍然收到“Data too long for column”错误,那可能是因为字段的字符集不支持中文字符。确保字段的字符集与数据库的字符集兼容。 7. **查询结果的字符集**: 除了数据库和字段...

    MySQL text插入长文本时报错Incorrect string value xE5x8FxAC.pdf

    在本例中,报错信息为“Incorrect string value :'\xE5\x8F\xAC' for column 'XXX' at row 1”,这通常意味着尝试插入的文本包含了MySQL无法识别的字符编码,或者字段类型不能容纳特定的字符序列。 首先,我们需要...

    探究MySQL中varchar的定义长度

    在上面的例子中,当尝试向`VARCHAR(10)`列插入`12345678901`时,由于超过了10个字节(10个英文数字字符共10字节),MySQL返回了`ERROR 1406 (22001): Data too long for column 'name' at row 1`错误。同样,当尝试...

    PHP+MYSQL 出现乱码的解决方法

    如果遇到`Data too long for column`错误,检查字段类型和长度。 2. **数据库创建时指定字符集**:在创建数据库时明确指定字符集,如`CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;` 3. **...

    mySQL 乱码问题解决方案

    在处理MySQL数据库时,中文乱码问题是一个常见的挑战,尤其对于使用GBK编码的系统迁移到UTF-8编码的场景。本文将深入探讨如何彻底解决MySQL中的中文乱码问题,涵盖从数据库、表、字段到连接参数等全方位的调整策略。...

    MySQL实现类似于connect_by_isleaf的功能MySQL方法或存储过程

    但是,由于返回的结果是字符串,当子集数量庞大时,可能会导致`Data too long for column`的错误,因为它受到列的最大长度限制。 ```sql CREATE FUNCTION `lvtao_demo_a`(rootId int) RETURNS text CHARSET utf8 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL&gt; create role admin;  授权给...

    Delphi7.1 Update

    * When the size of a Persistent field in TClientDataSet is set too large, it overwrites neighboring fields upon Post (Quality Central 3974). * TDataSetProvider generates incorrect SQL in response to ...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    2.4 数据类型 PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是...

Global site tag (gtag.js) - Google Analytics