`

一个关于mysql的text字段类型异常的解决方法

 
阅读更多

下面是一段我在保存text类型的数据到mysql时遇到的问题,记录在此,希望能为碰到此问题的同道中人节省时间:

 

保存数据时先是报该异常:com.mysql.jdbc.PacketTooBigException: Packet for query is too large

网上搜索答案后,进行了如下修改:

修改/etc/my.cnf文件中[mysqld]部分为max_allowed_packet = 64M

 

修改后旧异常没有了,但报新的异常:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column

网上说是字符集问题,但发现不是,因为我所有用的字符集都统一设置成了UTF-8

于是继续搜索,最后找到根本解决办法:

将字段类型从text改为了mediumtext。

 

下面贴一下mysql中和text相关的类型最大长度限制,请根据业务类型进行合理选择:

 

TINYTEXT 最大长度是 255 (2^8 – 1) 个字符。

TEXT 最大长度是 65535 (2^16 – 1) 个字符。

MEDIUMTEXT 最大长度是 16777215 (2^24 – 1) 个字符。

LONGTEXT 最大长度是 4294967295 (2^32 – 1) 个字符。

2
2
分享到:
评论

相关推荐

    mysql 让hibernate支持text字段的方言

    例如,可以创建一个自定义的`UserType`实现,覆盖`sqlTypes()`方法,返回`TEXT`字段对应的SQL类型代码(如` Types.LONGVARCHAR`),并在`returnedClass()`方法中指定返回的Java类型(如`String`)。 3. **配置...

    mybatis 对clob类型转换

    当你需要将一个字符串或者Reader对象插入到CLOB字段时,MyBatis默认可能无法正确处理。此时,你需要自定义一个TypeHandler来处理这种转换。创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`...

    J2EE(错误之数据类型转换异常)

    首先,`setAttribute`方法接收两个参数:一个字符串键和一个对象值。这意味着你可以存储任何类型的Java对象,但当你通过`getAttribute`获取这个值时,你需要确保类型匹配。在示例中,尝试将一个`Integer`对象设置为`...

    阿里巴巴MySQL开发规范

    1. **自增主键**:每张表必须有一个自增的主键ID,除非是分库分表的情况。自增主键能有效提高插入性能,减少页分裂和表碎片空间,提高存储空间利用率。 - **示例**:`id bigint AUTO_INCREMENT PRIMARY KEY` 2. ...

    MYSQL教程02 MYSQL教程02 MYSQL教程02

    MySQL教程02主要涵盖了一系列关于MySQL数据库管理系统的深入学习内容,包括但不限于数据库的基本概念、安装与配置、数据类型、表的创建与管理、查询语句的使用、索引的建立与优化、事务处理以及备份与恢复等核心知识...

    mysql.data版本集合

    MySQL是一个广泛使用的开源关系型数据库管理系统,其`.data`文件是与MySQL数据库相关的文件,通常包含数据库中的数据或日志信息。在这个“mysql.data版本集合”中,我们可能找到不同版本的MySQL数据库的数据文件,...

    MySQL++ v3.1.0教程

    MySQL++ 是一个功能强大的 C++ 封装库,它为 MySQL 的 C API 提供了一层抽象,使得开发者可以像操作 STL 容器一样轻松地处理 SQL 查询。这种设计极大地简化了与数据库交互的过程,并且通过面向对象的方式提供了更为...

    MySQL导出一句话拿WebShell的方法

    //创建名为temp的表,并定义一个TEXT类型的字段cmd ``` 2. **插入数据**:接下来,我们需要向这个临时表中插入数据。这里的数据实际上是我们希望写入WebShell脚本的内容。 ```sql INSERT INTO temp(cmd) VALUES...

    QT5.12.3 连接远程mysql 数据库,实现表创建,字段增删改查功能

    QT5.12.3是Qt开发框架的一个版本,它提供了丰富的C++库和工具,支持跨平台的应用程序开发。MySQL则是一种广泛使用的开源关系型数据库管理系统,具有高性能、高可靠性以及易于管理的特点。在本项目中,我们将讨论如何...

    一个学习MYSQL的笔记.zip

    这个“一个学习MYSQL的笔记.zip”压缩包很可能是包含了一系列关于MySQL学习资料的文档,如教程、笔记、示例代码等。下面我们将深入探讨MySQL的一些核心概念和技术。 1. **基础概念**: - **SQL**:Structured ...

    delphi远程连接MySQL(完美版)

    通过本教程的步骤,你将能够在Delphi中创建一个能够远程连接到MySQL数据库的应用程序。这份"delphi远程连接MySQL(完美版)"的DEMO应该包含了这些功能,通过下载并运行MySQL-demo(DELPHI)文件,你可以更深入地学习和...

    MySQL操作命令以及JDBC连接Mysql编程的步骤

    MySQL是一种广泛使用的开源关系型数据库管理系统,以其小巧、快速、低成本和开源的特性深受开发者喜爱。JDBC(Java Database Connectivity)则是Java语言中用来规范客户端程序如何连接和操作数据库的标准接口。下面...

    C#_MySQL_图片的存储与读取

    为了实现图片的存储功能,我们需要通过一系列步骤将图片转换为字节流,并将其保存到MySQL数据库中的一个`MediumBlob`类型的字段里。 1. **获取图片对象**: - 使用`pictureBox2.Image`来获取当前选中的图片。 - ...

    MYSQL_C_API详解.pdf

    - `mysql_fetch_field()`:获取结果集的列信息,返回一个MYSQL_FIELD结构,该结构包含了字段的名称、表名、数据类型等信息。 - `mysql_num_rows()`:返回由`mysql_store_result()`所返回的结果集中的行数。 - `...

    mysql数据库query的优化

    在数据库设计层面,遵循第一范式(1NF)、第二范式(2NF)和第三范式(3NF),以减少数据冗余,降低数据更新异常。合理使用分区和分表策略,对于大数据量的表,可以将数据按照某种规则(如时间、ID范围)分布到多个物理表...

    MySQL性能分析之临时表

    1. **包含BLOB或TEXT字段的查询**:如果查询中包含这些类型的数据,那么临时表将直接作为磁盘临时表创建。 2. **ORDER BY或DISTINCT中出现大列**:当`ORDER BY`或`DISTINCT`操作涉及超过512字节的列时,必须创建磁盘...

    mysql规范mysql规范mysql规范

    - 定义合适的主键,通常选择一个非空、唯一、不变的列,如自动递增的`id`字段。 3. **索引策略**: - 为经常用于搜索和排序的列创建索引,提升查询速度。 - 避免在频繁更新的列上创建索引,因为这会降低写操作的...

Global site tag (gtag.js) - Google Analytics