`
kankan1218
  • 浏览: 277717 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

中文字符 Mysql Data too long for column 'name' at row 1

阅读更多
INSERT INTO Shenzhen ( ItemId , Title , City , PostCode , X , Y , en_title ) VALUES ( 1720 , '深圳新闻-Shenzhen Post' , '深圳市' , '' , 114311218 , 22598236 , '2' )

刚刚在做一个插入操作的时候提示
1046 - Data too long for column 'Title' at row 1

解决办法如下

1,mysql的编码设置为 utf8 格式,可以从开始菜单那图形化配置,或者直接进入安装目录配置my.ini

2,在java连接数据库时这样写:

String url ="jdbc:mysql://localhost/sales?user=root&password=riskfitfeng&useUnicode=true&characterEncoding=utf-8";

3,数据库的编码为 utf8

4,数据库表编码为 utf8

5,数据库字段编码为 utf8
--------------------------------------------------------------------------------------------------------------------------------------------
最近,在用mysql做一个测试用例的时候,出现乱码。

现象:无论是从MySQL Query Browser还是Java程序插入数据库,只要插入中文字符, 就会报错“Data too long for column 'XXXXX' ”。这里,显然不是字段长度设置太短的问题。

在网上查资料,大多介绍不外乎下面集中解决方法:

1.修改Server端编码。修改character_set_xxx

2.在JDBC-URL连接后面加上&useUnicode=true&characterEncoding=UTF8

3.修改my.ini文件
去掉sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"中的STRICT_TRANS_TABLES

真是病急乱投医,所以该试的方法都试了,问题依然无法解决。

被这个问题折磨的实在不行了,最后准备卸载重装一次。再不行,就去别人的机器上试下。在备份表的SQL语句时,发现

DROP TABLE IF EXISTS `test`.`test1`;
CREATE TABLE `test`.`test1` (
column_name column_type [charset latin7]
) ENGINE=InnoDB DEFAULT CHARSET=latin7;
最后面,竟有这么一句:
DEFAULT CHARSET=latin7。

直接晕倒,明明已经在MySQL Query Browser中将表的编码设置成UTF8了,怎么是latin7。改成UTF8,问题解决。
看来,有时候不能太相信可视化的编辑器,还是直接的SQL最直接。

还有,就是查看下表的字段也有column charset选项,看是否设置正确了。

综上所述,出现乱码后,一定检查数据库服务器、库、表、字段的编码设置是否支持中文。

经过试验,只要上述都设置为UTF8,即使,URL后面不添加useUnicode=true&characterEncoding=UTF8就不会出现乱码。
分享到:
评论

相关推荐

    解决出现Incorrect integer value: '' for column 'id' at row 1的问题

    在使用数据库进行数据操作时,有时会遇到错误提示"Incorrect integer value: '' for column 'id' at row 1"。这个错误通常出现在尝试插入数据到一个整数类型的列时,而该列期望的是一个整数值,但提供的值是空字符串...

    Mysql 报Row size too large 65535 的原因及解决方法

    报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误。其实我对这个...

    mysql5.0乱码的解决实例

    - 如果“data too long for column”错误与中文字符有关,可能是因为字段类型设置过小,无法容纳UTF-8编码的中文字符。例如,VARCHAR(2)只能存放一个英文字符,但可能放不下一个中文字符。可以调整字段长度或使用更...

    MySql.Data.dll For C#

    MySQL.Data.dll 是一个重要的.NET框架库,专门为C#开发者提供与MySQL数据库交互的功能。这个库使得在C#环境中,开发者可以像操作SQL Server那样方便地操作MySQL数据库,大大简化了跨平台数据库应用的开发工作。 ...

    Mysql.Data(.net3.5;4.0).dll

    1. **MySQL连接字符串**:在C#代码中,连接到MySQL数据库时需要使用连接字符串。连接字符串包含了诸如服务器地址、数据库名、用户名和密码等关键信息。例如: ```csharp string connectionString = "Server=...

    MySql.Data.Entity.6.10.9 + MySql.Data.6.10.9

    MySQL.Data.Entity.6.10.9 和 MySQL.Data.6.10.9 是两个针对MySQL数据库操作的重要组件,主要用于.NET Framework环境中的Entity Framework(EF)集成。在本篇文章中,我们将深入探讨这两个库以及它们如何协同工作,...

    MySql.Data.dll8.0类库

    MySQL.Data.dll是MySQL数据库连接器的一个重要组成部分,主要用于C#和其他.NET Framework应用程序与MySQL服务器进行交互。这个8.0版本的类库提供了丰富的API,使开发者能够方便地执行SQL查询、管理数据库对象以及...

    mysql.data.dll包含(4.0和4.5),福音

    1. 数据连接:该DLL允许开发者通过建立连接字符串来创建与MySQL服务器的连接,使得应用程序能够发送SQL查询,执行存储过程,以及管理数据库事务。 2. 数据适配器和数据集:MySQL.data.dll支持.NET的数据适配器和...

    各版本mysql.data.dll文件

    1. **MySQL数据库连接器**:MySQL.Data.dll是MySQL .NET Connector的一部分,它提供了.NET应用程序与MySQL服务器的接口,使得开发者无需了解底层通信协议,就能轻松地进行数据库操作。 2. **版本兼容性**:MySQL....

    mysql.data.dll

    1. **MySQL.data.dll的功能** - 提供ADO.NET接口:MySQL.data.dll提供了.NET开发者熟悉的ADO.NET接口,如Connection、Command、DataAdapter和DataSet等,使得数据库操作变得简单。 - 支持多种数据库操作:包括查询...

    MySql.Data.dll(.NET4.0版本)

    1. **ADO.NET接口**:MySQL.Data.dll是基于ADO.NET框架的,它提供了对MySQL数据库的.NET接口。这包括Connection、Command、DataAdapter、DataReader等核心对象,用于建立连接、执行SQL命令、填充数据集和读取结果。 ...

    mysql.data.dll v4.0

    1. **MySQL数据提供者**: MySQL.data.dll是MySQL数据提供者的组成部分,它实现了ADO.NET框架,使得.NET开发者能够方便地使用.NET的数据访问类库来连接和操作MySQL数据库。数据提供者包括连接、命令、数据适配器、...

    C#连接mysql的Mysql.data.dll 5.0.8.1和6.2.1.0

    为了实现C#与MySQL之间的通信,开发人员需要依赖特定的驱动程序,这就是Mysql.data.dll的角色。本篇文章将详细探讨如何使用C#连接MySQL数据库,特别是针对Mysql.data.dll版本5.0.8.1和6.2.1.0。 首先,`Mysql.data....

    cadence错误:Name_is_too_long-经验文摘

    关于标题和描述中提到的“cadence错误:Name_is_too_long”,这是一个在使用Cadence电子设计自动化软件过程中可能会遇到的错误信息。Cadence是一家著名的电子设计自动化软件公司,其软件广泛应用于集成电路设计、...

    C# MySQL.data.dll 各版本下载 用于连接mysql数据库 历史最全 分32位系统与64位系统

    在.NET环境中,要连接到MySQL数据库,需要一个特定的驱动程序,这就是`MySQL.data.dll`的作用。 `MySQL.data.dll`是MySQL Connector/NET的一部分,它是一个由Oracle公司提供的官方.NET框架适配器,允许C#等.NET语言...

    MySql.Data_NET2.0-mysql for c# 2.0驱动.rar

    1. 引用`MySql.Data`命名空间: ```csharp using MySql.Data.MySqlClient; ``` 2. 创建连接字符串,包含数据库服务器地址、用户名、密码和数据库名: ```csharp string connectionString = "server=localhost;...

    mysql字符集设置

    MySQL字符集设置是数据库管理中的一个重要环节,尤其是在处理多语言数据或者有特殊字符需求的应用中。字符集决定了数据库、表以及字段如何存储和显示字符,影响到数据的正确性及兼容性。以下将详细讲解MySQL字符集的...

    mysql分割字符串

    在MySQL数据库中,有时我们需要处理存储在单一字段内的多个值,这时就涉及到字符串的分割操作。这个场景在处理如CSV格式的数据或者存储一串相关但独立的信息时尤为常见。本篇将详细介绍MySQL中的字符串分割技术及其...

Global site tag (gtag.js) - Google Analytics