【原创】mysql数据库异常:data truncate for column “*” at row *;data too long *。原因,及解决。
2013-12-10 18:09
706 查看
数据库异常
1.data truncate for column “*” at row *:就是数据被截断,类似时间被截短(字段属性为date,要存储的数据为timestamp),精度下降。
将数据库的字段属性调整合适,或者将要存储的数据进行精度调整即可。
2.data too long ***:
显然就是说你的数据长度超了,字段最长支持5位,你来了个10位,装不下了,就报这个错。
更上一个异常的处理类似即可。
如果不能解决
如果就像上面那样,我写这个就太蛋疼了。现在就来说安照上面的做法,你修改了数据,调整了数据库,可是还是会报上面的错误,这是为什么呢?
一般发生这种问题,按上述做法后不生效的,大多可能用到了mysql的 enum(枚举类型) character。(或者其他也会有)
问题就是编码,你传入的数据编码格式与mysql的编码格式不同,导致数据库接收到的数据解析后与你的枚举不同,所以导致你无法插入(insert)、更新(update)。
如果不是枚举的话,应该不会报错,只是你输入的中文内容会变为乱码。
解决
这个时候就要把数据库的编码格式改为我们常用的“utf-8”编码,具体做法如下:找到mysql的my.cnf文件(linux下)
默认为: /etc/mysql my.cnf
找到 “[client]” , 在他的下面添加一行
“default-character-set=utf8” (没错,是utf8,不是utf-8)
找到 “[mysqld]” , 在他的下面添加一行
“character-set-server=utf8”
重启数据库,可以重新执行下更新、或插入操作看看;
也可以进到mysql内 执行“ show variables like "character-set%"; ”
相关文章推荐
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题以及error 1406:data too long for column 'name' at row 1
- 报错django.db.utils.DataError: (1406, "Data too long for column 'gender' at row 1")的解决办法
- 解决django.db.utils.DataError: (1406, "Data too long for column 'gender' at row 1")
- 读取MYSQL中文数据乱码,解决data too long for column 'title' at row 1
- 成功解决Data too long for column `description` at row 1
- mysql Data too long for column ‘xxx’ at row xxx的解决方法
- MySql中插入中文数据提示Data too long for column X at row n的解决
- data truncated for column at row 1原因
- 【Hibernate错误解决办法】Could not execute JDBC batch update; Data too long for column 'name' at row 1
- 成功解决data too long for column 'name' at row 1
- Data truncation: Data too long for column '***' at row 1 的解决
- mysql Data too long for column ‘xxx’ at row xxx的解决方法
- 读取MYSQL中文数据乱码,解决data too long for column 'title' at row 1
- MySql 弹出“data too long for column 'xxx' at row 1"解决方法
- 解决数据库 data too long for column 'name' at row 1的问题
- Mysql 更新字段类型异常处理:ERROR 1265 (01000): Data truncated for column 'xxx' at row 1
- Warning(1265)Data truncated for column 'v_mmi' at row 1
- MySQL插入中文时出现ERROR 1406 (22001): Data too long for column 'name' at row 1
- Data too long for column 'name' at row 1 mysql的抛出异常的解决办法
- com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'title' at row 1