技术文章
当前位置:首页 > Mysql技术文章 > Mysql的max_allowed_packet设定

关于Mysql的max_allowed_packet设定详解

  • 发布时间:
  • 作者:码农之家原创
  • 点击:111

这篇文章主要知识点是关于mysql的设置、mysql的max_allowed_packet设定、如何修改mysql数据库的max_allowed_packet参数 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

MySQL入门经典
MySQL入门经典完整影印版
  • 类型:MySQL入门大小:313.3 MB格式:PDF出版:机械工业出版社作者:王雨竹
立即下载

更多Mysql相关的学习资源可以参阅 Mysql电子书程序设计电子书 等栏目。

Mysql的max_allowed_packet设定

max_allowed_packet是Mysql中的一个设定参数,用于设定所接受的包的大小,根据情形不同,其缺省值可能是1M或者4M,比如是4M的情况下,这个值的大小即为:4 *1024*1024= 4194304

现象

当日志中出现了诸如:“Package for query is too large (xxxxxxxx > 4194304). You can change this value on the server by setting the max_allowed_package variable”的提示的时候,错误的本身就清楚的提示了对应的方式。

确认max_allowed_package

使用如下的方式可以确认当前设定值

mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
|       4194304 |
+----------------------+
1 row in set (0.00 sec)
mysql>

或者

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name   | Value  |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.00 sec)
mysql>

修改

可以使用set命令来修改,但是只是临时修改,重启后即丢失。也可以直接修改过 mysql的设定文件并重启mysql服务,即可永久化保证设定。

根据mysql的安装不同修改的文件也会有所不同,普通安装方式可能会修改my.cnf,这里使用mysql的官方镜像,其修改的文件应该为:/etc/mysql/mysql.conf.d/mysqld.cnf

修改内容:向此文件中添加如下设定
max_allowed_packet = 256M

修改前

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

修改后

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_allowed_packet = 256M

重启容器并确认

mysql> show variables like '%max_allowed_pack%';
+--------------------------+------------+
| Variable_name      | Value   |
+--------------------------+------------+
| max_allowed_packet    | 268435456 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set (0.01 sec)
mysql>

所以已经看到已经成功设定为256M(268435456)了

liumiaocn:~ liumiao$ echo "256*1024*1024" |bc
268435456
liumiaocn:~ liumiao$

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接

如何修改mysql数据库的max_allowed_packet参数

如在导入数据库时出现“Got a packet bigger than 'max_allowed_packet' bytes”或者“MySQL server has gone away”等错误,一般是由于当前导入的数据大于系统的限制的最大包大小。服务器的默认max_allowed_packet值为1MB,通过修改'max_allowed_packet' 参数的大小就可以解决问题。

修改方法为:进入mysql的安装目录,找到my.ini文件,在最底下加上 max_allowed_packet=*M  (自己视情况设置)即可。

 

以上就是本次给大家分享的关于Mysql的全部知识点内容总结,大家还可以在下方相关文章里找到MySQL性能优化总结、 MySQL中的CONCAT函数使用方法、 MySQL 5.7增强版Semisync Repl、 等mysql文章进一步学习,感谢大家的阅读和支持。

上一篇:mysql迁移至Oracle数据库的实操方法

下一篇:MySql Group By对多个字段进行分组方法总结

展开 +

收起 -

Mysql设定 相关电子书
学习笔记
网友NO.428909

Mysql数据库分库和分表方式(常用)

本文主要给大家介绍Mysql数据库分库和分表方式(常用),涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧 1 分库 1.1 按照功能分库 按照功能进行分库。常见的分成6大库: 1 用户类库:用于保存了用户的相关信息。例如:db_user,db_system,db_company等。 2 业务类库:用于保存主要业务的信息。比如主要业务是笑话,用这个库保存笑话业务。例如:db_joke,db_temp_joke等。 3 内存类库:主要用Mysql的内存引擎。前台的数据从内存库中查找,速度快。例如:heap。 4 图片类库:主要保存图片的索引以及关联。例如:db_img_index,db_img_res。 5 日志类库:记录点击,刷新,登录等日志信息。例如:db_log_click,db_log_fresh,db_log_login。 6 统计类库:对业务的统计,比如点击量,刷新量等等。例如db_stat。 1.2 安装城市站分库 如果业务遍布全国,在按照功……

网友NO.875535

MySQL Administrator 登录报错的解决方法

使用MySQL Administrator 登录,报错: Either the server service or the configuration file could not be found.Startup variable and service section are there for disabled. 使用Root 登录进去以后看到管理功能都是禁止掉的,提示: This section is only avaliable when connected to localhost solution: 点开MySQL Administrator时候,不要点击登录,按住ctrl 键可以看到 最右边的cancel键变成skip 字样。 点击,进入安全配置模式 ,这里可以启动服务或者创建服务。这里可以GUI配置my.ini的参数,可以选择my.ini相对应的参数,注意:如果有红色参数表示错误,应该调整。 如果修改后重启MySQL Administrator还是不行的话,需要重启系统。……

网友NO.573819

MyBatis实现Mysql数据库分库分表操作和总结(推荐)

前言 作为一个数据库,作为数据库中的一张表,随着用户的增多随着时间的推移,总有一天,数据量会大到一个难以处理的地步。这时仅仅一张表的数据就已经超过了千万,无论是查询还是修改,对于它的操作都会很耗时,这时就需要进行数据库切分的操作了。 MyBatis实现分表最简单步骤 既然文章的标题都这么写了,不如直接上干货来的比较实际,我们就先来看看如何实现最简单的分表。 1、我们模拟用户表数据量超过千万(虽然实际不太可能) 2、用户表原来的名字叫做 user_tab ,我们切分为 user_tab_0 和 user_tab_1 (实际也可能不是这么随意的名字),这样就能把原来千万的数据分离成两个百万的数据量的两张表了。 3、如何操作这两张表呢?我们利用userId也就是用户的唯一标识进行区分。 4、 userId%2 == 0 的用户操作表 user_tab_0 ,同理 userId%2 == 1 的用户……

网友NO.648710

MySQL 5.7安装好后打开命令行窗口闪退的解决方法

前言 最近在安装好MySQL 5.7发现了一个问题,打开命令行窗口会闪退,后来发现原来是这个问题 若是因为在mysql安装目录下找不到my.ini文件,请接着往下看 解决方法 返回桌面,在开始出找出--MySQL 5.7 cammand line client并右键打开文件位置 属性-查看“目标”中的完整路径,我这里是 "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" "--defaults-file=C:\Program Files\MySQL\MySQL Server 5.7\my.ini" "-uroot" "-p" 查看该红色路径下是否有my.ini文件,没有的话是被放在C:\ProgramData\MySQL\MySQL Server 5.7路径下,把my.ini复制过来即可。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对码农之家的支持。 ……

网友NO.348738

关于mysql init_connect的几个要点总结

init_connect的作用 init_connect通常用于:当一个连接进来时,做一些操作,比如设置autocommit为0,比如记录当前连接的ip来源和用户等信息到一个新表里,当做登陆日志信息 使用init_connect的注意点 1 只有超级账户才可以设置(super_priv权限) 2 超级账户无视init_connect设置(即init_connect的设置对来自超级账户的连接不生效) 以上这篇关于mysql init_connect的几个要点总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

上传资源(网友、会员均可提供)

查看最新会员资料及资源信息