方法/步骤
先看看与这个错误相关的后台异常 :
Packet for query is too large (1706 >1024). You can change this value on the server by setting the max_allowed_packet' variable.
一旦数据库出现这个问题,基本执行任何查询语句,后台都会报这个错!(除非查询所得数据量特别少)!
先登录数据库,查看 max_allowed_packet 这个参数值
连接数据库服务器,登录 mysql, 执行命令 :
show variables like '%max_allowed_packate%'
即可查看这个系统参数目前的值 ! 我的系统,目前显示只有 1024 字节,确实太小了!
通过 mysql 命令更改这个值到 100M !
连接数据库服务器,登录 mysql, 执行命令 :
set global max_allowed_packet = 100*1024*1024
退出后,重新登录 mysql ,再次查看这个系统项的值, 注意,必须重新登录mysql,否则这个值还是显示为原始值(缓存)!
修改后,这个配置项显示为 100 M !
修改配置文件--Windows
我们刚才的修改是针对运行环境,但如果我们的配置文件不变,则重启数据库后,这个值又恢复为原始值了,对于 Windows 下的 MySQL,我们需要修改其配置文件 my.ini , 这个文件在 MySQL 的安装根目录下。
注意: MySQL 配置文件分为几个段 (Section), 包括 [mysql], [mysqld], [mysqldump] 等, 我们需要在 [mysqld] 段下添加配置项 :
max_allowed_packet = 100M
修改配置文件--Linux
在 Linux 中,MySQL 对应的配置文件是 my.cnf , 我们在Linux终端输入如下命令 :
mysql --help | grep my.cnf
可以查看 MySQL 所使用的 my.cnf 列表(优先级列表,先找到的配置文件生效),MySQL 会逐个目录寻找这个文件,直到找到为止!
我们逐个目录找到我们系统 MySQL 所使用的 my.cnf 配置文件,找到对应的配置项,修改为 100M 即可。
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”的提示的时候,错误的本身就清楚的提示了对应的方式。
使用如下的方式可以确认当前设定值
select @@max_allowed_packet
show variables like 'max_allowed_packet'
可以使用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 怎么修改max,解答如下修改方法为:
进入mysql的安装目录,找到my.ini文件,在最底下加上 max_allowed_packet=*M (自己视情况设置)即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)