Mysql max_allowed_packet自动重置为1024的情况

max_allowed_packet指的是服务器接收的包的大小,该值设置过小,可能导致数据写入失败,通常可以通过修改my.cnf或者在命令行通过set max_allowed_packet来实现。

但是在实际情况中,我们很多时候会遇到这样的一种情况:通过各种方式设置了max_allowed_packet的值,但是一段时间后,max_allowed_packet还是莫名其妙的变成了1024,而my.cnf里面的值还是之前设置的大于1024的值。

这个问题看起来很诡异,但是至少可以确定一点,那就是该值通过某某连接,在连接里面通过set命令给重置了。

一般来说,引起该问题不外乎如下几种情况:

设置不当:设置该值需要修改my.cnf配置,但是一共需要设置两处,如下:

[client]
max_allowed_packet=10240

[mysqld]
max_allowed_packet=10240

mysqld里面控制的是服务端,mysql里面控制的是客户端,如果只设置一处,则当有客户端连接的时候,该值会被重置。

内存不足:当mysql执行大批次查询语句大时候,因为服务器内存不足,引起预警,mysql会重置这个值,已保证数据库的稳定。

黑客攻击:其实在生产环境下,大多数的情况,还真是被攻击了,针对这个情况,需要集中查看,安全不容小觑,mysql 有general_log, 会记录所有执行的sql命令,因为耗费性能,默认是关闭。

打开general_log:

mysql> set global general_log = ON;

查看general_log:

  1. tail -f /var/run/mysqld/mysqld.log |grep max_allowed_packet (查看log,但打印大量实时sql操作)

  2.  

  3.  

    tail -f /var/run/mysqld/mysqld.log |grep max_allowed_packet >1.txt (过滤max_allowed_packet,并输出到文件1.txt)

通过日志查看修改的对应的ip地址,然后通过设置黑名单或者修改数据库密码来解决。

总结:生产环境下,应该绝对避免使用root作为数据库连接用户,另外对授权需要严格控制,尽量不要分配给应用的账户修改配置的权限,这样可以避免这类情况的发生,同时提升服务器的安全性。

来源:https://blog.csdn.net/cxboyee/article/details/79491215

原文地址:https://www.cnblogs.com/chenjunwu/p/11112552.html

时间: 2024-10-06 16:18:12

Mysql max_allowed_packet自动重置为1024的情况的相关文章

mysql max_allowed_packet自动重置为1024 终结解决

背景: 测试环境1台centOS机器,最近一段频繁报“ Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1354 > 1024). You can change this value on the server by setting the max_allowed_packet' variable ”, 记录解决问题的思路,最终找到问题根源:黑客入侵,总结经验. 思路: 查看max_a

Mac Mysql初始密码重置

今天晚上mac更新后重装MySQL 安装完成后 启动服务,死活登录不了 提示1045错误.按照网上的资料对MySQL密码进行重置.记录步骤如下: 1.首先关闭MySQL服务 系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) 2.进入终端输入:cd /usr/local/mysql/bin/回车后 登录管理员权限 sudo su回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables

MYSQL数据库自动本地/异地双备份/MYSQL增量备份

构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是重中之重的首要工作.电 子商务网站更加注重考虑数据安全,数据备份方案,包括本地备份.异地备份架构.其中Linux服务器的备份方案非常多,本文介绍一个大众化适用的解决方 案,通过编写Shell脚本来完成自动备份.本架构包括备份网站文件.数据库,自动本地备份并FTP上传备份脚本,完成相应本地备份.异地备

mysql max_allowed_packet查询和修改

工作中经常需要导入或者导出较大的sql文件.导出时一般没问题,但在导入到其它Mysql库中,可能会出现"Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet' variable. "或者程序(如python里面executemany)在插入大量数据时出现"MySQL server has

设置MySQL服务自动运行

一般情况下,MySQL安装以后是自动运行的,不知道我这台机器是什么原因,MySQL不能自动运行,每次开机后都要手动运行mysqld.exe,比较麻烦,于是用以下方法将MySQL自动启动: 1. 运行cmd,并切换到MySQL的bin目录下: 2. 输入mysqld --install命令,回车: 3.运行services.msc,可以看到已经将MySQL服务添加到服务列表中,将启动类型设置为自动,即可自动运行.

mysql max_allowed_packet设置过小导致写入失败

mysql max_allowed_packet 设置过小导致记录写入失败 mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES like '%max_allowed_packet%'; 调整: set global max_allowed_packet = 1024*1024*100   ##设置为100M exit 退出mysql客户端,重新登陆生

MySQL单实例重置密码的两种方法

MySQL单实例重置密码的两种方法 在工作学习中,我们有时会忘记数据库的密码,下面是MySQL单实例密码重置的步骤. 说明: (1)[[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) (2)[[email protected] ~]# mysql --version mysql  Ver 14.14 Distrib 5.7.13, for Linux (i686) using  EditLine wr

自动重置 Windows 更新组件

选择产品版本: 所有产品 如果您收到一个 Windows Update 错误,请尝试常见 Windows Update 错误的解决方案. 自动重置 Windows 更新组件 若要自动重置 Windows 更新组件,请单击“立即运行”,然后按屏幕说明操作. Windows 8.1.Windows 8 和 Windows 7 自动诊断和修复 Windows 更新常见问题疑难解答程序可能会自动修复本文中描述的问题. 此疑难解答程序可以修复许多问题. 了解更多 立即运行 Windows Vista 和

node 链接mysql(自动链接)

Node.js与MySQL交互操作有很多库 felixge/node-mysql 常用 cnpm i mysql --save dev 1.打开mysql 必须要有,我这里面用的是wamp.可视化用的是Navicat Premium var mysql = require('mysql'); //调用MySQL模块 var db_config = { host: 'localhost', //主机 user: 'root', //MySQL认证用户名 password: '', //MySQL认