参数max_allowed_packet

通信信息包是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。

当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。

客户端和服务器均有自己的max_allowed_packet变量,因此,如果打算处理大的信息包,必须增加客户端和服务器上的该变量。

客户端程序,其max_allowed_packet变量的默认值为16MB

服务器的默认max_allowed_packet值为1MB。如果服务器需要处理大的查询,可增加该值(例如,如果准备处理大的BLOB列)。

增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或mysqld必须返回大的结果行时mysqld才会分配更多内存。该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。

如果你正是用大的BLOB值,而且未为mysqld授予为处理查询而访问足够内存的权限,也会遇到与大信息包有关的奇怪问题。如果怀疑出现了该情况,请尝试在mysqld_safe脚本开始增加ulimit -d 256000,并重启mysqld

 
时间: 2024-10-02 05:09:31

参数max_allowed_packet的相关文章

测试环境mysql参数max_allowed_packet自动更改的问题排查过程

新到了一家公司,这几天,开发三天两头反应执行mysql语句报1024的错误,经排查,是max_allowed_packet值过小导致的.于是乎调大该参数 命令行执行: 解决办法1. mysql> set global max_allowed_packet = 2*1024*1024*10 但是过了一天,又反映报错.于是查看该参数 mysql> show variables like 'max_allowed_packet'; +--------------------+----------+

Mysql一些重要配置参数的学习与整理(一)

原文地址:Mysql一些重要配置参数的学习与整理(一) 最近一直在进行mysql的学习,主要是学习mysql的一些配置参数,了解参数的意义,考虑其对mysql性能的影响,向同事要了一份正式服务器上的mysql配置,目前的配置能够满足正式生产环境中的性能要求,在学习mysql的过程中,对该配置中的一些参数进行了解和学习,这里总结和整理一下,方便以后回顾. 其中涉及的配置参数主要有以下几个,接下来会依次进行学习和了解: skip-external-locking 在某些系统中,lockd锁管理器可能

用于 SELECT 和 WHERE 子句的函数

1 一个 SQL 语句中的 select_expression 或 where_definition 可由任何使用了下面所描述函数的表达式组成. 2 3 包含 NULL 的表达式总是得出一个 NULL 值结果,除非表达式中的操作和函数在文档中有另外的说明. 4 5 注意:在一个函数名和跟随它的括号之间必须不存在空格.这有助于 MySQL 语法分析程序区分函数调用和对恰巧与函数同名表或列的引用.然而,参数左右两边的空格却是允许的. 6 7 你可以强制 MySQL 接受函数名后存在空格的形式,这需要

mysql命令

1 添加mysql\bin 到path 2 启动cmd 登陆 :mysql -hlocalhost -uroot -pxxxx 3退出 exit 在mysql>提示符下命令   show databases; 显示数据库 use  world; 打开world数据库 show tables; 显示表 create database 库名;建库 drop database 库名 ;删库 create table ...;建表 drop table 表名;删表 delete from 表名; 删除记

ERROR 1160 (08S01) : Got an error writing communication packets

? 应用程序端碰到错误提示,MySQLNonTransientConnectionException:Got an error writing communication packets.与packet有关,之前一直都没有碰到过这个问题.数据库error日志也未见半点异常,到底是怎么一回事呢? 1.故障现象故障环境:$ cat /etc/issueCentOS release 5.9 (Final)Kernel \r on an \m [[email protected] ~]$ mysql -

Mysql 提交Big sql的过程

1 sql 提交时,mysql服务器首先通过参数max_allowed_packet检查sql的size,如果超出,则直接提示mysql go away. 2 server 从存储将需要修改的数据page load到内存(受制于innodb_buffer_pool_size)中. 3 写page,同时写redo undo log. 4 如果sql size 超过redo undo log 的buffer设定(innodb_log_file_size,innodb_log_files_in_gro

《高性能MySQL》读书笔记--查询性能优化

对于高性能数据库操作,只靠设计最优的库表结构.建立最好的索引是不够的,还需要合理的设计查询.如果查询写得很糟糕,即使库表结构再合理.索引再合适,也无法实现高性能.查询优化.索引优化.库表结构优化需要齐头并进,一个不落. 6.1 为什么查询速度会慢 通常来说,查询的生命周期大致可以按照顺序来看:从客户端>>服务器>>在服务器上进行解析>>生成执行计划>>执行>>返回结果给客户端.其中执行可以认为是整个生命周期中最重要的阶段,这其中包括了大量为了检索

MySQL查询执行的基础

当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.一旦理解这一点,很多查询优化实际上就是遵循一些原则让优化器能够按照预想的合理的方式运行. 换句话说,是时候回头看看我们之前讨论的内容了:MySQL执行一个查询的过程.当向MySQL发送一个请求的时候,MySQL到底做了什么. 1 客户端发送一条查询给服务器. 2 服务器首先检查缓存,如果命中缓存,则立即返回存储在缓存的结果,否则进入下一阶段. 3 服务器进行sql解析,预处理,再由优化生成器生成对应

knowledgeroot

knowledgeroot 示例站点 www.globaladmin.cn Knowledgeroot可用于文档管理,知识库管理. 1.基于php开发,支持linux ,windows.2.支持mysql ,sqlite, postgreSQL3.支持任意类型附件(目前版本使用数据库base64后保存文件,需要调整mysql 参数max_allowed_packet,否则大于1M文件不能保存),使用数据库保存附件这个特性,如果附件很多,很大的情况,会是个问题.需要改造.4.支持插件功能,官方网站