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就不会出现乱码。
分享到:
相关推荐
在MySQL数据库操作中,当你尝试插入或更新一行数据时,如果某个字段的值超过了该字段定义的最大长度,系统会抛出“ERROR 1406 : Data too long for column”的错误。这个错误提示非常直接,意味着你试图输入的数据在...
在 MySQL 中,当我们尝试导入中文字符时,总是报错“Data too long for column XX at row n”。这个问题的主要原因是 MySQL 的默认编码为 gb2312,而我们通常使用的 UTF-8 编码,这两个编码之间的差异导致了这个问题...
报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误。其实我对这个...
在使用数据库进行数据操作时,有时会遇到错误提示"Incorrect integer value: '' for column 'id' at row 1"。这个错误通常出现在尝试插入数据到一个整数类型的列时,而该列期望的是一个整数值,但提供的值是空字符串...
- 如果“data too long for column”错误与中文字符有关,可能是因为字段类型设置过小,无法容纳UTF-8编码的中文字符。例如,VARCHAR(2)只能存放一个英文字符,但可能放不下一个中文字符。可以调整字段长度或使用更...
MySQL.Data.dll 是一个重要的.NET框架库,专门为C#开发者提供与MySQL数据库交互的功能。这个库使得在C#环境中,开发者可以像操作SQL Server那样方便地操作MySQL数据库,大大简化了跨平台数据库应用的开发工作。 ...
MySQL.Data.Entity.6.10.9 和 MySQL.Data.6.10.9 是两个针对MySQL数据库操作的重要组件,主要用于.NET Framework环境中的Entity Framework(EF)集成。在本篇文章中,我们将深入探讨这两个库以及它们如何协同工作,...
1. **MySQL连接字符串**:在C#代码中,连接到MySQL数据库时需要使用连接字符串。连接字符串包含了诸如服务器地址、数据库名、用户名和密码等关键信息。例如: ```csharp string connectionString = "Server=...
MySQL.Data.dll是MySQL数据库连接器的一个重要组成部分,主要用于C#和其他.NET Framework应用程序与MySQL服务器进行交互。这个8.0版本的类库提供了丰富的API,使开发者能够方便地执行SQL查询、管理数据库对象以及...
1. 数据连接:该DLL允许开发者通过建立连接字符串来创建与MySQL服务器的连接,使得应用程序能够发送SQL查询,执行存储过程,以及管理数据库事务。 2. 数据适配器和数据集:MySQL.data.dll支持.NET的数据适配器和...
1. **MySQL数据库连接器**:MySQL.Data.dll是MySQL .NET Connector的一部分,它提供了.NET应用程序与MySQL服务器的接口,使得开发者无需了解底层通信协议,就能轻松地进行数据库操作。 2. **版本兼容性**:MySQL....
1. **MySQL.data.dll的功能** - 提供ADO.NET接口:MySQL.data.dll提供了.NET开发者熟悉的ADO.NET接口,如Connection、Command、DataAdapter和DataSet等,使得数据库操作变得简单。 - 支持多种数据库操作:包括查询...
1. **MySQL数据提供者**: MySQL.data.dll是MySQL数据提供者的组成部分,它实现了ADO.NET框架,使得.NET开发者能够方便地使用.NET的数据访问类库来连接和操作MySQL数据库。数据提供者包括连接、命令、数据适配器、...
1. **ADO.NET接口**:MySQL.Data.dll是基于ADO.NET框架的,它提供了对MySQL数据库的.NET接口。这包括Connection、Command、DataAdapter、DataReader等核心对象,用于建立连接、执行SQL命令、填充数据集和读取结果。 ...
为了实现C#与MySQL之间的通信,开发人员需要依赖特定的驱动程序,这就是Mysql.data.dll的角色。本篇文章将详细探讨如何使用C#连接MySQL数据库,特别是针对Mysql.data.dll版本5.0.8.1和6.2.1.0。 首先,`Mysql.data....
MySQL.Data.dll是MySQL数据库连接器的一个重要组成部分,主要用于.NET应用程序与MySQL服务器之间的数据交互。这个动态链接库(DLL)文件提供了丰富的API,使得开发者能够轻松地在C#、VB.NET或其他支持.NET Framework...
关于标题和描述中提到的“cadence错误:Name_is_too_long”,这是一个在使用Cadence电子设计自动化软件过程中可能会遇到的错误信息。Cadence是一家著名的电子设计自动化软件公司,其软件广泛应用于集成电路设计、...
在.NET环境中,要连接到MySQL数据库,需要一个特定的驱动程序,这就是`MySQL.data.dll`的作用。 `MySQL.data.dll`是MySQL Connector/NET的一部分,它是一个由Oracle公司提供的官方.NET框架适配器,允许C#等.NET语言...
1. 将`MySql.Data.dll`文件导入到Unity项目中:将下载的插件文件复制到项目的`Assets`目录下,通常放在一个单独的子目录如`Plugins`中,以便管理。 2. 引用`MySql.Data.dll`:在C#脚本中,你需要添加对`MySql.Data`...