• news
  • pics
  • linux
  • windows
  • proxmox
  • game
  • news
  • pics
  • linux
  • windows
  • proxmox
  • game
Home
linux

解决mysql自动重启

今日早上一起来就看到钉钉上有一堆报错信息,全都是job平台的.格式如下

1
2
3
[Job管理平台报警]job_id:13(邮件发送) 执行出错,返回错误码是1,错误原因是命令运行失败,业务级别:L1,报警时间:2019-07-26 06:22

[Job管理平台报警]job_id:15(订单过期) 执行出错,返回错误码是1,错误原因是命令运行失败,业务级别:L1,报警时间:2019-07-26 06:22

总计20多个,心一下就凉了.立马处理这个问题.

问题排错

既然是命令运行失败,那我们就先手动来运行一次命令.so.我就来手动执行一次命令

1
2
> /usr/bin/php /data/www/server/yii queue/email/run
> no data to handle…

命令执行成功.什么情况.既然命令没有问题,那会不会是其他问题呢.查看job日志得到如下结果

1
> Error: SQLSTATE[HY000] [2002] No such file or directory

数据库链接出现问题.数据库链接出现问题无非如下.

1
2
1.连接数过多,无法处理了.
2.数据库服务挂了.导致php的mysqli的扩展找不到mysql.sock文件.

数据库链接

既然是数据库链接过多,那我们就来查看一下

1
show variables like ‘max_connections’;

得到结果为200.在查看当时系统日志,cpu才运行到40%,内存才10%都不到,很明显.不是这个.

MYSQL.SOCK

既然不是连接数过多,那就应该是mysql.sock不在了.造成文件不在的两个原因第一,因为mysql.sock文件是在系统挂载盘,如果挂载盘出现问题了,sock文件也会不在.但是我们的网站文件也在挂载盘,如果掉了,那网站也会出现问题,显然不是.那就是mysql服务挂了.查看内容日志

1
2
3
4
cat /var/log/kern.log | grep ‘Jul 26 06’ | more

type=1400 audit(1564093267.882:225): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/sbin/mysqld” pid=2297 c
omm=”apparmor_parser”

果然,在第一行就提示apparmor在限制文件的访问.后面几次访问都不能进行访问了.在查看系统日志.

1
cat /var/log/syslog

得到结果如下

1
2
3
4
5
6
7
8
Jul 26 06:20:30 qy-guanjia-01 systemd[1]: Starting Daily apt upgrade and clean activities…
Jul 26 06:20:59 qy-guanjia-01 systemd[1]: Reloading.
Jul 26 06:20:59 qy-guanjia-01 systemd[1]: Started ACPI event daemon.
Jul 26 06:20:59 qy-guanjia-01 systemd[1]: Stopping MySQL Community Server…
Jul 26 06:21:01 qy-guanjia-01 systemd[1]: Stopped MySQL Community Server.
Jul 26 06:21:01 qy-guanjia-01 systemd[1]: Reloading.
Jul 26 06:21:01 qy-guanjia-01 systemd[1]: Started ACPI event daemon.
Jul 26 06:21:01 qy-guanjia-01 systemd[1]: Stopped MySQL Community Server.

由于在自动更新,所以停止mysql服务.至此,问题原因被查到.

解决

因为mysql服务被停止了,所以mysql相关的服务都挂了.由于在自动更新,所以我们就需要禁止掉自动更新,由于系统是ubuntu.所以解决方案如下.

1
2
3
4
5
vim /etc/apt/apt.conf.d/10periodic

APT::Periodic::Update-Package-Lists “1”; // 将1改为0,禁用掉
APT::Periodic::Download-Upgradeable-Packages “0”;
APT::Periodic::AutocleanInterval “0”;

至此,就解决掉了.

扩展DDOS,DOS解决方案

同时在demsg查到如下.

1
TCP: request_sock_TCP: Possible SYN flooding on port 3306. Sending cookies. Check SNMP counters.

由于cookie溢出,被怀疑有Dos或者DDos攻击,解决方案如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vim /etc/sysctl.conf

#最关键参数,默认为5,修改为0 表示不要重发
net.ipv4.tcp_synack_retries = 0
#半连接队列长度
net.ipv4.tcp_max_syn_backlog = 200000
#系统允许的文件句柄的最大数目,因为连接需要占用文件句柄
fs.file-max = 819200
#用来应对突发的大并发connect 请求
net.core.somaxconn = 65536
#最大的TCP 数据接收缓冲(字节)
net.core.rmem_max = 1024123000
#最大的TCP 数据发送缓冲(字节)
net.core.wmem_max = 16777216
#网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 165536
#本机主动连接其他机器时的端口分配范围
net.ipv4.ip_local_port_range = 10000 65535

sysctl -p # 生效


Previous article 查看apache当前并发访问数和进程数 ApacheLinux
Next article 这油光身材谁看不下贱?魅魔.雅儿贝德☆太魅了~

therock

Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Categories
  • game
  • linux
  • news
  • pics
  • proxmox
  • windows
Recent Posts
  • Proxmox VE 直通显卡方案及解决N卡Code43
  • Linux系统出现:You have new mail in /var/spool/mail/root 的原因及解决办法
  • debian系统解决中文乱码
  • pve添加git和pvetools
  • 流鼻血!这不“枣糕”的傲人身材加体现了出来~
Recent Comments
  • Paulvem on Proxmox VE 直通显卡方案及解决N卡Code43
  • Davidimmip on Proxmox VE 直通显卡方案及解决N卡Code43
  • Jimvem on Proxmox VE 直通显卡方案及解决N卡Code43
  • MichaelNat on Proxmox VE 直通显卡方案及解决N卡Code43
  • MiclBiG on Proxmox VE 直通显卡方案及解决N卡Code43
Archives
  • December 2022 (4)
  • November 2022 (6)
  • April 2022 (1)
  • February 2022 (5)
  • January 2022 (2)
  • December 2021 (3)
  • November 2021 (1)
  • October 2021 (2)
  • September 2021 (1)
  • August 2021 (1)
  • July 2021 (8)
  • June 2021 (14)
  • May 2021 (2)
  • April 2021 (2)
  • March 2021 (10)
  • January 2021 (4)
  • December 2020 (4)
  • November 2020 (13)
  • April 2020 (276)
  • March 2020 (1)
  • June 2019 (5)
  • May 2019 (10)
  • December 2015 (1)