阿里云服务器 MySQL 经常自动停止、挂掉、重启。打开 MySQL 的 error.log 错误信息,在阿里云 CentOS 的路径为 /alidata/log/mysql/error.log,如下:

2016-03-13 00:16:37 0[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use--explicit_defaults_for_timestampserver option(see documentationformore details).
2016-03-13 00:16:37 30576[Note] Plugin'FEDERATED'is disabled.
2016-03-13 00:16:37 30576[Note] InnoDB: Using atomics to ref count buffer pool pages
2016-03-13 00:16:37 30576[Note] InnoDB: The InnoDB memory heap is disabled
2016-03-13 00:16:37 30576[Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-03-13 00:16:37 30576[Note] InnoDB: Memory barrier is not used
2016-03-13 00:16:37 30576[Note] InnoDB: Compressed tables use zlib 1.2.3
2016-03-13 00:16:37 30576[Note] InnoDB: Using Linux native AIO
2016-03-13 00:16:37 30576[Note] InnoDB: Using CPU crc32 instructions
2016-03-13 00:16:37 30576[Note] InnoDB: Initializing buffer pool, size=64.0M
2016-03-13 00:16:37 30576[Note] InnoDB: Completed initialization of buffer pool
2016-03-13 00:16:37 30576[Note] InnoDB: Highest supported file format is Barracuda.
2016-03-13 00:16:37 30576[Note] InnoDB: The log sequence numbers 52296883 and 52296883inibdata filesdonot match the log sequence number 93636989inthe ib_logfiles!
2016-03-13 00:16:37 30576[Note] InnoDB: Database was not shutdown normally!
2016-03-13 00:16:37 30576[Note] InnoDB: Starting crash recovery.
2016-03-13 00:16:37 30576[Note] InnoDB: Reading tablespace information from the .ibd files...
2016-03-13 00:16:37 30576[Note] InnoDB: Restoring possible half-written data pages
2016-03-13 00:16:37 30576[Note] InnoDB: from the doublewrite buffer...InnoDB: Last MySQL binlog file position 0 9828, file name mysql-bin.000335
2016-03-13 00:16:37 30576[Note] InnoDB: 128 rollback segment(s)are active.
2016-03-13 00:16:37 30576[Note] InnoDB: Waitingforpurge to start
2016-03-13 00:16:37 30576[Note] InnoDB: 5.6.21 started;log sequence number 93636989
2016-03-13 00:16:38 30576[Note] Recovering after a crash using mysql-bin
2016-03-13 00:16:38 30576[Note] Starting crash recovery...
2016-03-13 00:16:38 30576[Note] Crash recovery finished.
2016-03-13 00:16:40 30576[Note] Server hostname(bind-address):'*';port: 3306
2016-03-13 00:16:40 30576[Note] IPv6 is not available.
2016-03-13 00:16:40 30576[Note] -'0.0.0.0'resolves to'0.0.0.0';
2016-03-13 00:16:40 30576[Note] Server socket created on IP:'0.0.0.0'.
2016-03-13 00:16:41 30576[Note] Event Scheduler: Loaded 0 events
2016-03-13 00:16:41 30576[Note] /alidata/server/mysql/bin/mysqld: readyforconnections.Version:'5.6.21-log'socket:'/tmp/mysql.sock'port: 3306 MySQL Community Server(GPL)160313 00:16:41 mysqld_safe Number of processes running now: 0160313 00:16:41 mysqld_safe mysqld restarted

MySQL 的 error.log 中,我们很难找出出是哪里出了问题。去 Google 了一下,给出的答案基本是修改”/alidata/server/mysql/my.cnf”:

innodb_buffer_pool_size=64M# 默认为128M,修改成64M、32M或者8M,但实际上重启 MySQL 之后以为能运行,实际上过了一会 MySQL 还是会出现不知原因地自动关闭。

注意去看其中的2016-03-13 00:16:37 30576[Note] InnoDB: Database was not shutdown normally!说明了 MySQL 非正常关闭,MySQL 也不知道自己为什么被关闭掉了。。。于是, MySQL 觉得真奇怪,自己又重启了自己的进程开始 Crash Recoverying,如下:

接着,大家又猜想这条2016-03-13 00:16:37 30576[Note] InnoDB: The log sequence numbers 52296883 and 52296883inibdata filesdonot match the log sequence number 93636989inthe ib_logfiles!Google,发现原来就是这里捣鬼,才出现了 MySQL 再重启之后,又继续自动关闭,再重启。于是,尝试按照 StackOverflow 上面的 suggestions 去做:

重启,又可以了。。。没一会,嚓,MySQL 又宕了!这次不仅宕,而且 error.log 又多了因 * innodb_force_recovery = 6 * 而引起的错误。

怎么办?现在我们回到下面这条日志:

2016-03-13 00:16:37 30576[Note] InnoDB: Database was not shutdown normally!

现在我们要看看,为什么 MySQL 会不正常关闭呢!?现在我们打开top看看。下面使用htop进行查看:

一看 mysql 进程占用的 VIRT 怎么这么多!这时,你要是多刷新几下你服务器上搭建的 WordPress 网站的主页的话,会出现 mysql 内存占用率超过 50% 的情况,这时候 mysql 进程就会被 linux 内核杀死。也就出现了我们在 MySQL 的 error.log 中看到的“[Note] InnoDB: Database was not shutdown normally!” 日志了。

为了确定这个猜测是否真实,我们去看看 kernel 日志。

接着你会看到:

看到最后的两条:

好了,终于找出原因了,内存不够,杀死了 mysqld 进程。

下面是我的优化方案:

1.创建 SWAP 分区:
检查系统Swap文件信息

sudo swapon -s
free -m

检查硬盘可用空间

df -h

创建Swap文件

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024

激活Swap

sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1

使Swap在主机重启后依然生效

sudo nano /etc/fstab

加入以下内容

/var/swap.1 swap swap defaults 0 0
All done!

2.降低数据库 InnoDB 引擎的缓冲区大小,以及限制 MySQL 的最大连接数(max_connections):
降低 InnoDB 缓冲区大小为 64M 或者 32M(到mysql配置文件中修改)

innodb_buffer_pool_size=64M

限制最大连接数为100,在服务器配置很低时可以继续降低

max_connections=100

修改完重启 MySQL:

service mysqld restart

注释:max_connections 的默认值是 151,可以动态更改这个值。参见:max_connections

如有必要,可以重启服务器: reboot

sqlyog怎么连接mysql错误2003_网站突然连不上,MySQL连接错误经常内存不够宕机相关推荐

  1. A网站引用B服务器虚拟目录文件导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题

    A网站引用B服务器共享目录(虚拟目录)导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题 本攻略并不是本机的部署导致的HTTP 错误 500.19 问题 ...

  2. mysql在线检测失败_一则线上MySql连接异常的排查过程

    Mysql作为一个常用数据库,在互联网系统应用很多.有些故障是其自身的bug,有些则不是,这里以前段时间遇到的问题举例. 问题## 当时遇到的症状是这样的,我们的应用在线上测试环境,JMeter测试过 ...

  3. java mysql死锁_记一次线上mysql死锁分析(一)

    记录一次比较诡异的mysql死锁日志.系统运行几个月来,就在前几天发生了一次死锁,而且就只发生了一次死锁,整个排查过程耗时将近一天,最后感谢我们的DBA大神和老大一起分析找到原因. 诊断死锁 借助于我 ...

  4. linux mysql 确认命令_LINUX启动/重启/停上MYSQL的命令(详解)

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...

  5. mysql如何安装 centos7_如何解决centos7上mysql安装及问题

    本文主要向大家介绍了如何解决centos7上mysql安装及问题,通过具体的步骤向大家展现,希望对大家学习mysql有所帮助. 1 卸载centos7自带mariadb数据库 (1)列出所有被安装的r ...

  6. mysql win linux性能对比,不同系统上 MySQL 的性能对比

    不同系统上 MySQL 的性能对比 发布时间:2006-07-16 16:44:23来源:红联作者:koov 这个文件中包含了不同基准测试的结果. 测试结果后)中的数字表示精确测试中执行的SQL命令的 ...

  7. arduino(19 ):使用ESP32连接 PS3 蓝牙手柄,需要在windows 上先连接成功,然后在修改mac地址,才可以连接成功,但是目前正在测试中,需要在windows上配对成功。

    目录 前言 1,关于 Arduino 2,使用 Arduino 3,arduino上连接 4,Linux 5,总结 前言 相关arduino 全部分类: https://blog.csdn.net/f ...

  8. 基于mysql实现的网站_基于JavaScript和MySQL的文化平台网站的设计与实现

    摘要 中国文化源远流长,自古就有文人雅士作诗赋词,舞文弄墨,尽显风雅.现今则有歌手作家思想成文,心绪为曲,亦现儒雅.文化是传承的,是流传不息的,也是众多人所追求的.从各种各样的文化中,我们提升自己,丰 ...

  9. mysql连接字段需要索引_mysql – 索引字段上的连接不使用索引

    我有两张桌子.我写了一个查询来在一列上加入它们.此列在两个表中都已编制索引,但MySQL未使用索引.有人a)告诉我为什么和b)告诉我如何让MySQL使用索引快速加入这些表. 第一张表: CREATE ...

最新文章

  1. Linux终端下 dstat 监控工具
  2. Oracle:FOR循环语句练习
  3. 读大道至简第二章感悟
  4. pe我的手机服务器存档文件,我的世界手机版怎么导出存档 pe版怎么把存档给别人用...
  5. android 盒子dns设置,电视盒修改DNS,让你的上网速度更快!
  6. g++编译so里调用外部so
  7. 阿里云新优惠活动,幸运券免费领取
  8. 教你炒股票25:每日解盘
  9. 解决跨域(六)--- document.domian
  10. 计算机未响应硬盘,最近电脑打开磁盘或文件夹老程序未响应为什么啊,有什么办法可以解决?...
  11. word显示隐藏格式清除残留格式
  12. UNIX常用命令(C站最全,一文通关)
  13. [读书笔记] Deep learning by Yann LeCun1,2, Yoshua Bengio3 Geoffrey Hinton4,5 on nature
  14. 服务器ibmc无法加载js文件,weUI应用之JS常用信息提示弹层的封装
  15. 生物图像处理软件汇总(持续更新)
  16. 计算机科学期刊几个外审,期刊投稿服务发表论文外审一般几个专家审稿_优发表...
  17. 12法则10个心理效应
  18. 西南(唐山)交通大学上海校友会2012年度大会活动通知
  19. 总结二十二:如何在公司建立成功的技术文化(2)
  20. 多传感器融合--MATLAB跟踪器介绍

热门文章

  1. 多商户商城源码_多商户小程序开发搭建?开达应用多商户入驻商城小程序制作教程...
  2. 虚拟化服务器类型,虚拟化服务器类型
  3. python封装exe如何返回上一步_如何将python脚本封装成exe程序?
  4. 伸缩杆怎么缩回去图解_没有阳台怎么晾衣服?这10个神器,让家里衣物晾晒更轻松方便...
  5. cpu开核_新锐龙让AMD重返巅峰,但逆袭的50年里这些CPU也不应忘记
  6. 查找会议论文的会议地址
  7. 解决JPA的枚举局限性
  8. 计算机局域网有哪些硬件组成,局域网的硬件组成有哪些
  9. java 管理系统登陆完毕后关闭窗口_【求助】登录窗口登录成功后隐藏窗口
  10. python绘制动态图表怎么存下来_做动态图表,没有数据?用Python就能获取!