加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2013-05-14 17:20:54)
标签:

mysql

datatoolongforcolumn

分类: 数据库

在程序中写了一段代码向数据库中插入数据,出现了data too long for column 'name' at row 1的问题。在google搜了一下解决方法,真是五花八门,也逐一试了一遍,终于终于将问题解决了。

下面先贴一下网上的众多解决

1、修改my.ini文件:

将sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,ok!

2、修改数据库编码为utf8,jsp,servlet编码转换为utf8存入

3、只知道是中文处理的问题,但不知道如何改.最好的方法是把字段定得长一些

4、把mysql的字符集设为utf8(通过修改my.ini,把所有的latin1改为utf8)并且通过show variables like '%char%';

5、以前我也遇到过类似的情况,我的建议: 在装数据库的时候把你的字符集设置为gb2312,然后你建表的时候,汉字默认都是gb2312在连接数据库的时候不要写成characterEnconding=true&charset=gb2312,把这个去掉。然后在连接的时候写c最好用gbk,gb2312对某些不常见的字符会出现Data too long for column,比如“珺”字等,至于数据库,只有默认的字符集是gb2312或者gbk或者utf8都没什么问题

 

最后试了第五种方法,没有完全按照它所说的做,在插入数据库之前先执行stat.execute("set names gb2312");就能成功将中文字插入到数据库中。

这是为什么了?在采用第四种方式时,得到这样的信息 +--------------------------+---------------------------------------------------- -----+ | Variable_name            | Value      | +--------------------------+---------------------------------------------------- -----+ | character_set_client     | gbk      | | character_set_connection | gbk      | | character_set_database   | gbk      | | character_set_results    | gbk      | | character_set_server     | gbk      | |character_set_system     | utf8      | | character_sets_dir       | C:/Program Files/MySQL/MySQL Server 5.0/share/chars ets/ | +--------------------------+---------------------------------------------------- 说明我的系统编码方式与数据库的编码方式不符,用stat.execute("set names gb2312");将编码方式先改为gb2312方式,就可以解决这样的问题。



以上是引自http://blog.csdn.net/zhaopeipei1985/article/details/2633997的原文,原文说第一种方法不行 ,但是博主试了一次不行,重启mysql服务就成功了!其他方法还没试过,仅供参考

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有