mysql攻击防卫 max_allowed_packet设置后总变回1024
   好多年不写文章了,大家相互学习,请多指教~
直奔主题吧
[ERROR]Packet for query is too large (1456 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
运行程序时,报错信息

服务器系统
linux
远程连接工具:Xshell 及Xftp等

服务器环境
mysql5.1
远程连接工具Navicat Premium


查看服务器中mysql配置信息
cat /etc/my.cnf
查看在[mysqld]后面,是否有max_allowed_packet
若没有
vim /etc/my.cnf
  

          进行编辑(若你知道此处操作,可跳过)
               在英文输入法下,先按键盘上的字母i  (即表示,告诉编辑器你想insert了),此时屏幕下方会显示插入或是insert
               当状态变为插入时
               通过键盘将光标移至[mysqld]

max_allowed_packet=128M
               按下ESC按
               再按shift+两次
添加保存成功后
               再次查看是否添加成功
cat /etc/my.cnf
图片

停止mysql服务器
service mysqld stop

重新启动
service mysqld restart

在mysql命令下,查看设置是否成功
show VARIABLES like '%max_allowed_packet%';
图片
正题
 
常规情况下,这种设置是OK的,但是当你过段时间再次查看时,会发现max_allowed_packet又为1024
1.查看服务器内存是否够用
    free
2.查看服务防火墙是否关闭
    service iptables status
    显示为:iptables:未运行防火墙。  没有问题
    2.1若防火墙未关闭

         service iptables stop
3.查看mysql操作日志是否有他人操作  
         3.1 查看日志状态
            在mysql命令下show global variables like '%general%';
          图片

            若当前Value为OFF
             则在mysql命令下输入set global general_log=on; 
       再指定日志输出路径或将日志存放在数据库表中
       set global log_output='table'
      或
       set global general_log_file='/tmp/general.log';
昨晚放好日志睡觉,今早起来开了下,出现几个莫名的IP攻击


图片

图片

图片

如果你的日志里也出现了下面的信息,那么恭喜你,你的服务器也同样收到了攻击


应对方案
1.修改root密码
     可以通过密码生成器,随机生成8位密码
     密码生成规则为  英文大小写+字符+数字
        mysql> use mysql;
        mysql> update user set password=password("你的新密码") where user="root";
        mysql> flush privileges;
        mysql> quit
   
2.修改mysql端口号
      这里说的大部分是不用3306默认端口号
      特别注意的是,修改前,先确认当前欲修改端口号是否被占用
      lsof -i
    或
 netstat -anp|grep 3506
                                       
欲修改端口号

    修改端口号   /etc/my.cnf 
    添加方法可以看上面

    port=3506
    重启mysql服务


3.限定访问IP
     
阅读更多
个人分类: mysql
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

mysql攻击防卫 max_allowed_packet设置后总变回1024

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭