mysql data too long for column xxx解决方案

转载 2011年01月10日 11:04:00

问题:java.sql.SQLException: Data truncation: Data too long for column 'content' at row 1 Query

遇到这个问题搜集的网上的一些解决方案:

第一种解决办法:

出自:http://www.blogjava.net/zoninge/archive/2009/04/15/265663.html感谢博主!
在页面中向mysql5.0插入中文数据时提示失败,将sql语句复制到管理器中,数据库提示data too long for column "title",我改为一个汉字,还是提示同样的信息,换成英文再试一下,正常,应该是字符集除了问题,但是数据库在建立的时候就选择的DEFAULT_CHARSET,应该是字段的问题。
将MySQL安装目录下的my.ini文件中的字符集配置如下(修改完之后,最好重启一下MySQL服务):
    [mysql]
    default-character-set=gbk
    [mysqld]
    default-character-set=gbk
或者在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的
STRICT_TRANS_TABLES,
去掉,然后重启mysql就ok了
    将表和字段的字符集属性都改成gbk。
    在每一次MySqlCommand Execute语句时,如果SQL语句或者参数中包含中文,或者是返回的记录集中有中文(指Select的查询语句),就在这个Execute的SQL语句之前加一个SET NAMES GBK;。

第二种解决方案:

http://www.cnblogs.com/amboyna/archive/2008/04/21/1163110.html
感谢博主!

data too long for column xxx解决方案

Update:mysql5在phpmyadmin无法连接时执行的语句:
SET PASSWORD FOR ‘root’@'localhost’ = OLD_PASSWORD(’[newpassword]‘);

刚才在导入数据的时候,navicat报错:
Data too long for column ‘ip’ at row 1
提示数据对于ip字段太长

如果数据类型不正确,也会出错,而不像4.*那样自动转换:
sendQuery:Incorrect datetime value: ‘未知’ for column ‘date’ at row 1


如果是数据x (int 11)类型的可能有些奇怪:
insert into a (x) values (’a')
出现:
Out of range value adjusted for column ‘x’ at row 1

insert into a (x) values (’11a’)
出现:
Data truncated for column ‘x’ at row 1

解决办法:
在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”
把其中的
STRICT_TRANS_TABLES,
去掉,然后重启mysql就ok了
参考博主转自:Trackback:[url] http://tb.blog.csdn.net/TrackBack.aspx?PostId=2032186[/url]


关于MySQL5中varchar字段类型的长度定义:


原文稍作了截取:
http://hi.baidu.com/mcspring/blog/item/63f0dea25e8e7baacbefd0ad.html

借此机会重新仔细读了一下MySQL5的文档,其中对varchar字段类型这样描述:varchar(m) 变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节)。

为何会这般变换?真是感觉MySQL的手册做的太不友好了,因为你要仔细的继续往下读才会发现这段描述:MySQL 5.1遵从标准SQL规范,并且不删除VARCHAR值的尾部空格。VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节。

好了,貌似懂了一点。但具体他说的长度大于255时使用2个字节长度前缀,小学减法题:65535 - 2 = 65533啊。不知道这些大牛如何计算的,暂且保留疑问吧?

注:我测试了一下使用UTF8编码,varchar的最大长度为21854字节。
------------------------------------------------------------------
可能人品不好 上面都没有解决我的问题。我把数据类型换成了longtext  长度不用设置就ok了

Data truncation: Data truncated for column/Data too long for column问题解决

    今天在做网站项目时。发现了这个错误:Data truncation: Data too long for column dcontent at row 1。我检查了以下。发现我插入到文本框里的...
  • leidengyan
  • leidengyan
  • 2008年10月21日 02:22
  • 12633

Data truncation: Data too long for column 'urlname' at row 1

数据插入时报错mysql:Data truncation: Data too long for column 'urlname' at row 1  问题表现:数据中urlname长度在1000+范...
  • osliveandroide
  • osliveandroide
  • 2017年06月23日 15:22
  • 145

java-mysql异常<Data truncation: Data too long for column 'name ' at row 1>讨论

-----------------------------------------------------------     mysql5.0+myeclipse4.1+tomcat5.0   ...
  • ZKLxuankai
  • ZKLxuankai
  • 2012年06月28日 17:16
  • 8048

MySQL中文字符解决方案[Data too long for column XX at row n]

一个很经典的问题,搞了老半天!今天终于解决了,在这里和大家分享一下! MySQL中导入中文字符解决方案[Data too long for column XX at row n] 数据库中数据...
  • cuihuaming198809
  • cuihuaming198809
  • 2012年11月21日 10:57
  • 20708

Data truncation: Data too long for column 'XXX' at row 1

Data truncation: Data too long for column 'XXXX' at row 1 解决方法: (1)字符编码统一: 将所有的编码都设置成utf8,jsp的c...
  • huihuang1515
  • huihuang1515
  • 2013年12月02日 16:28
  • 13218

mysql中data too long for column问题的解决方法

在页面中向mysql5.0插入中文数据时提示失败,将sql语句复制到管理器中,数据库提示data too long for column "title",我改为一个汉字,还是提示同样的信息,换成英文再...
  • yu422560654
  • yu422560654
  • 2011年07月06日 09:06
  • 1849

mysql 5中遭遇data too long问题

之前MYSQL 4好好的跑得,一到MYSQL5里,发现出现 data too long for column的异常,GOOGLE了一下 有个解决办法,修改my.ini中,将 sql-mode=”STR...
  • jackyrongvip
  • jackyrongvip
  • 2013年07月01日 17:23
  • 1008

mysql中data too long for column问题的解决方法

今天在做项目时用到了文件上传功能,上传总是失败,提示data too long for column,一开始是以为编码问题 解决:NND   blob 只能上传65k  如果上传大文件要使用long...
  • flyemu
  • flyemu
  • 2012年11月25日 20:23
  • 1543

成功解决data too long for column 'name' at row 1

在程序中写了一段代码向数据库中插入数据,出现了data too long for column name at row 1的问题。在google搜了一下解决方法,真是五花八门,也逐一试了一遍,终于终于...
  • zhaopeipei1985
  • zhaopeipei1985
  • 2008年07月10日 14:34
  • 79691

Data too long for column 'sex' at row 1

错误信息:Data too long for column 'sex' at row 1 分析原因: 1.数据库中设置的字符长度不够 找到对应的字段,将字符长度加长一些。 2.编码导致的原因,...
  • jiangxindu1
  • jiangxindu1
  • 2015年04月25日 15:26
  • 13726
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql data too long for column xxx解决方案
举报原因:
原因补充:

(最多只允许输入30个字)