mysql中data too long for column错误的一种解决办法



 首先说明一下问题先:

      本人做了一个在线知识仓库之类的JSP小网站,页面编码为UTF-8,但在运行中老是出现乱码,经检查发现是mysql数据库出现了问题。

 

Q1.不能插入中文的数据,一插入就会提示data too long for column ''的错误。

 

上网找了一下,才明白mysql的默认编码格式是latin1,与utf-8的编码不同。按照网上的高手的说明,我先将原来的数据库删除重建

 

1.

create database knowledgedb character set utf8 collate utf8_general_ci;

 建库时就指定数据库的编码格式为utf8,

 

2. 修改my.ini文件,就位于mysql安装路径下。

      将里面的default-character-set=latin1修改为

                          default-character-set=utf8(注意,my.ini文件中有两个default-character-set)

 

      再将里面的sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE "中的stric_trans_tables去掉.重启一下mysql服务,然后就可以插入中文了!

 

 

stric_trans_tables选项是启用严格的检查,具体的知识可参考http://tech.ddvip.com/2007-10/119363724736634.html    

 

但是这种方法也有一个弊端,去掉了stric_trans_tables,其实也就去掉了严格的检查,由mysql程序选择一个最可能的值来代替(不知这样说对不对,请大家指教) 在网页中或程序中可以正确显示中文,但在doc下查询数据库,中文显示还是乱码:

这算是治标不治本吧,不知各位大牛是否有更好的解决办法,请赐教!!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Data too long for column"错误表示插入或更新数据库时,某一列的数据长度超过了列的限制。根据引用,这个错误可能是由于'userAccount'列的数据过长而导致的。引用提到,即使将数据类型设置为足够大的varchar(255),存储一个汉字也会出现这个错误,因此第3种方法是不可行的。根据引用,解决这个错误的最好方法是进入数据库,找到对应表头的列,并修改列的数据类型或长度。例如,可以将varchar类型的列修改为longtext类型,或者通过修改长度值来达到同样的目的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Data too long for column ‘xxx‘ at row 1 ——数据库字段长度太短](https://blog.csdn.net/M_Love_U/article/details/125026274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [解决mysql报错:1406, Data too long for column(多种方案)](https://blog.csdn.net/weixin_63660670/article/details/129658874)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值