mysql data too long for column xxx解决方案
来源:互联网 发布:everying软件搜图片 编辑:程序博客网 时间:2024/05/16 05:43
问题: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了
- php+mysql data too long for column xxx解决方案
- mysql data too long for column xxx解决方案
- mysql data too long for column xxx解决方案
- mysql data too long for column 解决方案
- php+mysql data too long for column 解决方案
- MYSQL中出现data too long for column的解决方案
- data too long for column 解决方案
- Mysql "data too long for column"
- mysql Data too long for column ‘xxx’ at row xxx的解决方法
- mysql Data too long for column ‘xxx’ at row xxx的解决方法
- MYSQL写入中文错误 —— Data too long for column 'xxx' at row 1
- MySql 弹出“data too long for column 'xxx' at row 1"解决方法
- Data too long for column
- [Mysql] Data truncation: Data too long for column ......
- mysql插入错误 Data truncation: Data too long for column
- Mysql MysqlDataTruncation Data truncation Data too long for column
- MySQL中导入中文字符解决方案[Data too long for column XX at row n]
- MySQL中文字符解决方案[Data too long for column XX at row n]
- 【转载】opencv中的一些宏
- 解读shell之批量添加账户
- [ACE程序员教程笔记]使用ACE_Connector连接服务器
- Apache开源软件目录
- 银行业务调度系统心得
- mysql data too long for column xxx解决方案
- GStreamer: Open Source Multimedia Framework
- 永久勘误:微软等面试100题答案V0.2版[第1-20题答案]
- 【转】毕业后的五年决定你的一生
- 再议gluPerspective和gluLookAt的关系
- poj 1011 Sticks
- (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- 循环添加option
- linux内核学习(19)内核编程基本功之内核同步与互斥锁mutex