前几天刚解决了阿里云服务器因为Bash漏洞被人恶意攻击,导致服务器CPU占用率已经居高不下问题。修复后稳定运行了几天,今天早上居然又挂了。显示数据库连接失败。太郁闷了,难道又让人给黑了?

没办法,只能好好分析分析问题了,毕竟人生就是一个不断发现问题,解决问题的过程。

第一步,我们先来看看阿里云的云盾攻击日志。

看了一下没发现什么问题,一切都很正常。说明不是因为Web攻击导致的数据库异常。

第二部,看一下数据库的日志。

vi /var/log/mysql.err

vi /var/log/mysql.log

日志都是空的,也没看出啥问题来。

第三部,看一下系统日志。

vi /var/log/syslog

里面日志很多,搜一下mysql,发现问题了。

syslog日志

问题就出现在这个里面,根据描述应该是系统内存用光了,然后mysql进程被kill掉了。

想想很可能就是这个原因,因为这个服务器是2013年的时候买了,当初只买了512M的内存,也确实太少了一点。

那就花点钱,升级一下配置吧。

那么问题来了,能不能不多花钱也解决这个问题呢?那当然得试试了。那能从哪些地方来控制系统的内存使用呢?

要么是apache,要么是PHP,要么是mysql,那都优化一下吧。

对于PHP鉴于博客和其他系统都是用的开源的程序,不太好改动,如果限制PHP的内存大小,可能是引起程序的报错,也不太好优化

对于apache呢,可以通过apache的配置文件来优化一下

减少 php-fpm 的资源占用,可根据自身情况进行修改

pm = dynamic
如何控制子进程,选项有static和dynamic。
如果选择static,则由pm.max_children指定固定的子进程数。
如果选择dynamic,则由下开参数决定:
pm.max_children ,子进程最大数
pm.start_servers ,启动时的进程数
pm.min_spare_servers ,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers ,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
对于专用服务器,pm可以设置为static。
如果服务器是使用的nginx的话,也可以进行一些配置上的优化
一个CPU进程,256个线程即可。
worker_processes 1;
worker_connections 256;
那接下来优化一下mysql吧,既然系统内存使用溢出,apache没有挂,mysql挂了,那说明MySQL有更大的优化空间
1、降低数据库 InnoDB 引擎的缓冲区大小
在 /etc/my.cnf 的 mysqld 下添加下面一句:
innodb_buffer_pool_size = 64M
说明:WordPress 默认使用 InnoDB 数据库引擎;innodb_buffer_pool_size 设置的是缓冲区的大小,默认值为 128M。
鉴于个人博客访问量不会太大,因此适当降低缓冲区的大小以减轻内存压力

2、最后重启 MySQL 使操作生效
补充说明一下:如果不需要 MySQL 的 InnoDB 引擎可以将其关闭。
default-storage-engine = MYISAM   #默认数据库引擎改为MYISAM
loose-skip-innodb                 #关闭Innodb支持

从各个方面优化一下,感觉还不错哦。持续运行一段时间观察一下,看看还有没有问题,同时也给大家分享一下这次的优化经历。

阿里云服务器的MySQL莫名其妙的挂了 之 优化篇相关推荐

  1. 阿里云服务器的mysql安装

    阿里云服务器的mysql安装 寻找了大量的阿里云服务器ECS下载安装的教程,整理以下流程和遇到的问题以及解决方式 以下为本文参考的文章博客: https://blog.csdn.net/ChenLij ...

  2. 解决navicat连接阿里云服务器的mysql报错:1130 . Host 16.8 85 isnot alowed to con nect to this MySQL server

    解决navicat连接阿里云服务器的mysql报错:1130 . Host 16.8 85 isnot alowed to con nect to this MySQL server 报错效果 报错原 ...

  3. 阿里云服务器部署MySQL所报的错误集锦(操作系统:CentOS 8)

    阿里云服务器部署MySQL所报的错误集锦(操作系统:CentOS 8) 1.Error: Transaction test error: 当遇到这种错误,执行以下代码: [root@root /]# ...

  4. 连接阿里云服务器上MySQL数据库失败的解决办法

    一 数据库配置,MySQL默认是不能远程连接 只需要在/etc/mysql下的my.cnf文件里注释掉bind-address = 127.0.0.1 就可以了,如图: 二 安全组设置 阿里云服务器默 ...

  5. 阿里云服务器关闭mysql数据库_mysql - 阿里云服务器数据库自动关闭,怎么解决...

    mysql - 阿里云服务器数据库自动关闭,怎么解决 怪我咯2017-04-17 14:26:19 0 2 108 网站运行一段时间,突然连不上数据库了,重启数据库,网站又正常了!请问是什么原 ...

  6. 阿里云服务器下mysql卸载

    一, 登陆阿里云服务器后,查看mysql状态,看到LISTEN表示已安装mysql成功 1. root@iZ2ze47s90mcta2n9nz9mgZ:/# sudo netstat -tap | g ...

  7. 阿里云服务器 ,MySQL建库、建表

    --1.连接数据库mysql -u root -p--2.输入密码--3.建库create database is_mysql;--4.查看是否建表成功show database;--5.通过工具(我 ...

  8. Linux+Docker+腾讯云/阿里云服务器 安装MySQL相关命令整理

    注:主要是收集整理一些常用的命令 主要参考:狂神说docker以及其他的一些命令收集.主要是因为平常安装的mysql外部无法访问 MYSQL的创建用户,授权用户,删除用户,查看用户_ZJE-CSDN博 ...

  9. 阿里云服务器和mysql的原理_mysql 数据库同步原理

    mysql 数据库同步原理 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Serv ...

最新文章

  1. python函数用法详解2(变量的作用域(全局变量、局部变量)、共享全局变量、函数返回值、函数的参数(位置参数、关键字参数、默认参数、不定长参数)、拆包、交换变量值、引用、可变和不可变类型)
  2. xss跨站脚本,纯安全测试干货分享-建议收藏
  3. [js] 写一个方法判断数组内元素是否全部相同
  4. WindJS 中的$await
  5. Win2008 R2 VDI动手实验系列之二:远程桌面虚拟化主机配置
  6. App 抓包-Fiddler简单使用教程
  7. 离线安装Silverlight 工具
  8. 阿里云ACP云计算认证有用吗?
  9. php爬取ins图片_python爬取【追新番】日剧资源
  10. PPT修行之路(一)
  11. linux禅道在线迁移,禅道从windows迁移到linux
  12. HoloLens2语音指令实现
  13. IIS 部署.NET网站无法访问解决办法
  14. 计算机图形学矩形_《交互式计算机图形学》读书笔记 —— 第一章、图形系统和模型...
  15. 【bzoj 3238】差异
  16. 关于浏览器输入一个网址后页面经历的过程总结
  17. 面向对象分析与设计01 - 关键抽象
  18. UOJ#328. 【UTR #3】量子破碎
  19. 红旗linux v11预览版下载,红旗 Linux 桌面系统发布 v11 预览版,1月10日开放下载
  20. 向量点积,叉积,向量点乘和余弦的关系推导

热门文章

  1. java使用sftp上传(文件)图片到服务器中
  2. 平凡与非凡的差异仅在于那一点点额外的努力
  3. 求两个相交圆的交点的公式
  4. 上班消磨时光的看txt小说神器,很好用
  5. 智慧的云计算:IBM云计算解决方案
  6. 计算机主机一会运行一会又停止,电脑有时能开机有时不能开机是什么原因
  7. POI动态字段导出Excel-导入Excel,解析加密数据再导出
  8. Windows2003建立域控制器
  9. C语言-定义和声明的区别
  10. bigdecimal负数变正数_BigDecimal的用法详解