`
iceriverho
  • 浏览: 44960 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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下查询数据库,中文显示还是乱码:

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

 

  • 大小: 13.1 KB
分享到:
评论

相关推荐

    ERROR 1406 : Data too long for column 解决办法

    在MySQL数据库操作中,当你尝试插入或更新一行数据时,如果某个字段的值超过了该字段定义的最大长度,系统会抛出“ERROR 1406 : Data too long for column”的错误。这个错误提示非常直接,意味着你试图输入的数据在...

    MySql写入中文错误解决

    通过以上解决方案,我们可以正确地导入中文字符到 MySQL 中,无需再担心“Data too long for column XX at row n”的错误。同时,我们也需要了解 MySQL 的默认编码为 gb2312,并且需要在不同的场景下选择正确的编码...

    mysql5.0乱码的解决实例

    "data too long for column"错误提示则表明尝试存储的数据超过了列的最大长度,这与字符集编码有关,也可能导致乱码。下面我们将深入探讨如何识别和解决这些问题。 首先,我们要理解MySQL中的字符集。字符集定义了...

    大牛总结 MySql常见错误集锦

    10. 错误1406: Data too long for column 'column_name' at row 1 插入的数据长度超过了列的最大允许长度。调整数据的大小,或者增大列的长度限制。 这些错误只是MySQL使用过程中可能遇到的一部分,理解和解决这些...

    Mysql中文乱码问题完美解决方案.docx

    - `com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column` 错误表示数据长度超过了列的允许长度,这通常不是字符集问题,而是字段长度不足。需检查对应列的定义并调整其大小。 7. **...

    mysql乱码问题解决方案

    **问题1:** 当插入数据时出现“Data truncation: Data too long for column”错误。 **解决方法:** - 检查字段长度是否足够。 - 考虑增加字段的长度或者调整数据以适应现有的字段长度。 **问题2:** 应用程序抛...

    如何解决MYSQL数据中文乱码问题.docx

    如果字段长度足够,但插入中文字符时仍然收到“Data too long for column”错误,那可能是因为字段的字符集不支持中文字符。确保字段的字符集与数据库的字符集兼容。 7. **查询结果的字符集**: 除了数据库和字段...

    MySQL text插入长文本时报错Incorrect string value xE5x8FxAC.pdf

    在实际操作中,如果你的文本是以“口”或者其他中文字符结尾,并且超过了`TEXT`字段的长度限制,MySQL不会像预期那样抛出“Data too long”的错误,而是会抛出“Incorrect string value”的错误,因为它无法正确地...

    mySQL 乱码问题解决方案

    本文将深入探讨如何彻底解决MySQL中的中文乱码问题,涵盖从数据库、表、字段到连接参数等全方位的调整策略。 ### 一、理解乱码原因 在MySQL中出现中文乱码的主要原因有以下几点: 1. **字符集不匹配**:当数据在...

    MySQL实现类似于connect_by_isleaf的功能MySQL方法或存储过程

    但是,由于返回的结果是字符串,当子集数量庞大时,可能会导致`Data too long for column`的错误,因为它受到列的最大长度限制。 ```sql CREATE FUNCTION `lvtao_demo_a`(rootId int) RETURNS text CHARSET utf8 ...

    PHP+MYSQL 出现乱码的解决方法

    如果遇到`Data too long for column`错误,检查字段类型和长度。 2. **数据库创建时指定字符集**:在创建数据库时明确指定字符集,如`CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;` 3. **...

    探究MySQL中varchar的定义长度

    在上面的例子中,当尝试向`VARCHAR(10)`列插入`12345678901`时,由于超过了10个字节(10个英文数字字符共10字节),MySQL返回了`ERROR 1406 (22001): Data too long for column 'name' at row 1`错误。同样,当尝试...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除Microsoft ODBC for Oracle注册表键以外的所有含有Oracle的键。  删除环境变量中的PATHT CLASSPATH中包含Oracle的值。  删除“开始”/“程序”中所有...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl...

    Delphi7.1 Update

    * When the size of a Persistent field in TClientDataSet is set too large, it overwrites neighboring fields upon Post (Quality Central 3974). * TDataSetProvider generates incorrect SQL in response to ...

Global site tag (gtag.js) - Google Analytics