Mysql中max_allowed_packet参数设置一例

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介:

今天研发人员在调试java程序的时候,发现了mysql报出如下问题:

java.lang.IllegalArgumentException: Packet is larger than max_allowed_packet from server configuration of 1048576 bytes

        at org.gjt.mm.mysql.Buffer.ensureCapacity(Buffer.java:398)

        at org.gjt.mm.mysql.Buffer.writeBytesNoNull(Buffer.java:386)

        at org.gjt.mm.mysql.PreparedStatement.executeUpdate(PreparedStatement.java:352)

        at com.cicro.cws.database.DBManager.execute(DBManager.java:450)

        at com.cicro.cws.publish.PreparePublish.saveSiteInstanceXmlIntoDB(PreparePublish.java:827)

        at com.cicro.cws.publish.PreparePublish.generatePublishFiles(PreparePublish.java:181)

        at com.cicro.cws.publish.PublishManager.publish(PublishManager.java:180)

        at com.cicro.cws.synchronize.InstanceSynchronize.publishSite(InstanceSynchronize.java:954)

        at com.cicro.cws.site.Site.publish(Site.java:365)

        at com.cicro.cws.site.Site.run(Site.java:338)

        at java.lang.Thread.run(Thread.java:536)

解决如下:

这个问题是因为导入的sql文件大于系统默认的max_allowed_packet的值,解决方法:比如在my.cnf修改增加到:max_allowed_packet=32M #或者更高,当然也可以在mysqld启动的时候加入这个参数,但是该变量必须在mysqld重新启动的时候才加载生效,所以必须重起mysqld!

我是把max_allowed_packet参数加载到了mysql启动文件mysqld中,mysqld文件部分设置如下:

${MYSQL}/bin/mysqld --user=mysql --datadir=${MYSQL}/data "$@" \

--language=${MYSQL}/share/mysql/english -O max_connections=500 -O wait_timeout=600 \

-O key_buffer=32M --max_allowed_packet=32M --port=${port} --socket=/tmp/mysql.sock &

其中 --max_allowed_packet=32M必须有前面的――符号。

 

关于max_allowed_packet一些资料:

许多MySQL程序有一些内部变量可以在运行时设置。程序变量的设置与带有值的其它长选项相同。

例如,mysql有一个max_allowed_packet变量,可以控制其通信缓冲区的最大长度。要想为mysql将max_allowed_packet变量的值设置为16MB,使用下面的任何一个命令:

shell> mysql --max_allowed_packet=16777216

shell> mysql --max_allowed_packet=16M

第1个命令以字节指定值。第2个命令以兆字节指定值。变量值可以有一个后缀K、M或者G(可以为大写或小写)来表示千字节、兆字节或者十亿字节的单位。

在选项文件中,变量设定值没有引导破折号:

[mysql]

max_allowed_packet=16777216

或:

[mysql]

max_allowed_packet=16M

如果你喜欢,变量名的下划线可以为破折号。

注:max_allowed_packet参数是在mysql4以后才有的,在mysql4以前版本,还没有这个参数,此外,还可以通过再/etc/增加my.cnf文件,在my.cnf中设置max_allowed_packet=16M,然后重启mysql也可.至于my.cnf的获得,可以从mysql主目录的support-files下通过更改模版得到.


















本文转自南非蚂蚁51CTO博客,原文链接: http://blog.51cto.com/ixdba/526416,如需转载请自行联系原作者



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
6月前
|
存储 缓存 监控
MySQL服务器配置优化:my.cnf参数调优指南
本文深入解析了MySQL核心配置参数及性能优化技巧,涵盖内存结构、调优原则、存储引擎优化、查询性能优化等内容,通过实战案例帮助读者构建高性能MySQL服务器配置,解决常见的性能瓶颈问题。
|
8月前
|
存储 SQL 关系型数据库
mysql中max_allowed_packet的解释说明
max_allowed_packet 是 MySQL 配置项之一,用于控制单个包(数据包)能够传输的最大字节数。这个参数限制了 MySQL 在执行某些操作时可以接收或发送的最大数据量,尤其是在处理 大查询、二进制数据(如大 BLOB、TEXT 数据) 时。通过设置合适的 max_allowed_packet 值,可以避免在传输大数据时遇到错误。
872 0
|
7月前
|
NoSQL 关系型数据库 MySQL
在Visual Studio Code中设置MySQL源码调试环境
以上步骤涵盖了在VS Code中设置MySQL源码调试环境的主要过程,是一个相对高级的任务,旨在为希望建立强大开发和调试环境的开发者提供指引。遵循这些步骤,将可以利用VS Code强大的编辑和调试功能来深入理解和改进MySQL数据库的底层实现。
513 0
|
10月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
296 18
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的参数文件
MySQL启动时会读取配置文件my.cnf来确定数据库文件位置及初始化参数。该文件分为Server和Client两部分,包含动态与静态参数。动态参数可在运行中通过命令修改,而静态参数需修改my.cnf并重启服务生效。文中还提供了相关代码示例和视频教程。
328 6
|
关系型数据库 MySQL 数据库
MySQL事务隔离级别及默认隔离级别的设置
在数据库系统中,事务隔离级别是一个关键的概念,它决定了事务在并发执行时如何相互隔离。MySQL提供了四种事务隔离级别,每种级别都解决了不同的并发问题。本文将详细介绍这些隔离级别以及MySQL的默认隔离级别。
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
872 3
|
缓存 监控 关系型数据库
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
415 1
|
6月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
455 158