首先先粘贴出来我的错误信息,如下:

2019-07-16T00:53:18.285919Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 18555
2019-07-16T00:53:18.506674Z 0 [ERROR] [MY-012681] [InnoDB] mmap(137428992 bytes) failed; errno 12
2019-07-16T00:53:18.506740Z 1 [ERROR] [MY-012956] [InnoDB] Cannot allocate memory for the buffer pool
2019-07-16T00:53:18.506757Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2019-07-16T00:53:18.509371Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2019-07-16T00:53:18.510501Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-07-16T00:53:18.513074Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-07-16T00:53:18.518947Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15) MySQL Community Server - GPL.

可以看到服务启动失败,关键看这么一句:Cannot allocate memory for the buffer pool。表明的意思是不能再给innodb的缓存池分配内存了。想到的我的服务器内存很小,才1G,十分有可能是这个原因,进而查资料得知innodb_buffer_pool_size这个默认值是128M,我通过free查看了我的内存剩余200多兆,但是没有设置swap分区大小,或许就是因为系统本身所需内存也不足无法为服务分配空间而导致的服务宕机吧。

那么,接下来我做的事情就两步了:

其一:修改innodb_buffer_pool_size的大小,放置在mysql的配置文件中,我的配置文件是在/etc/mysql/mysql.conf.d/mysqld.cnf中,你们的可能是在/etc/mysql/my.cnf下,根据实际情况来吧。

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
innodb_buffer_pool_size = 64M # add here,default is 128M
bind-address = 0.0.0.0

其二:为系统swap分区分配一个值,swap存在的本身作用也就是在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。用以下命令创建一个swap文件挂载在系统上,需要你在root权限下执行这些操作。

dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile

然后添加/swapfile swap swap defaults 0 0/etc/fstab文件里面。【作用是保证重启系统前面的操作不会丢失,要让系统重启的时候能自动挂载,需要在fstab文件中配置挂载项。】

LABEL=cloudimg-rootfs	/	 ext4	defaults	0 0
/swapfile swap swap defaults 0 0 # add here

最后重启一下mysql就可以了。

记录一次mysql宕机的解决办法的更多相关文章

  1. redis宕机如何解决?如果是项目上线的宕机呢?

    我们先来了解一下  bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了. 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台r ...

  2. MySQL常见错误及其解决办法

    1.连接类 (1).问题:MySQL server has gone away  解决办法:出现该报错常见的原因是服务器超时了并且关闭了连接.缺省地,如果没有事情发生,服务器在 8个小时后关闭连接.如 ...

  3. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法

    更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql ...

  4. MySQL主从宕机的解决方法

    测试系统:centos6.5系统 测试环境IP地址划分: master: 192.168.80.130 slave:192.168.80.143 slave:192.168.80.146 首先模拟(M ...

  5. (转)从史上八大MySQL宕机事故中学到的经验

    一.Percona网站宕机事件 震级:3 发生时长:2011年7月11日 持续时长:数日 地点:加州Pleasanton(幸福屯) 宕机原因:Percona网站主服务器上的3块硬盘损坏,同时因为人员变 ...

  6. nginx解决服务器宕机、解决跨域问题、配置防盗链、防止DDOS流量攻击

    解决服务器宕机 配置nginx.cfg配置文件,在映射拦截地址中加入代理地址响应方案 location / { proxy_connect_timeout 1; proxy_send_timeout ...

  7. 仓储管理系统500bug记录一下mysql 8小时超时解决办法

    HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.TransientDa ...

  8. [MySQL复制] SQL_ERROR 1032解决办法(non-gtid env)

    一.缘由: 在主主同步的测试环境,由于业务侧没有遵循同一时间只写一个点的原则,造成A库上删除了一条数据,B库上在同时更新这条数据. 由于异步和网络延时,B的更新event先到达A端执行,造成A端找不到 ...

  9. mysql主从延时临时解决办法

    主从延时临时解决办法: 主从延迟严重的原因很多,其中有以下原因: 一.由于无主键大表的delete 和update导致. mysql  主从复制时.如果表上没有主键.会导致update和delete操 ...

随机推荐

  1. mysql in和not in

    mysql> select * from table1; +----------+------------+-----+---------------------+-------+ | name ...

  2. 【2019.11.27】SDN上机第5次作业

    参考资料: https://www.cnblogs.com/zzqsss/p/11924685.html 问答环节 描述官方教程实现了一个什么样的交换机功能? Ryu是一个基于组件的软件定义的网络框架 ...

  3. java通过请求对象获取ip地址、获取ip地址

    /** * 获取登录ip */ public String getIp(){ HttpServletRequest request = this.getRequest(); String ip = & ...

  4. Delphi内存专题

    第一课: Windows 是多任务的操作系统, 一个任务就是一个应用(应用程序).一个应用占一个进程; 在一个进程里面, 又可以运行多个线程(所以就有了很多"多线程编程"的话题). ...

  5. web服务器请求代理方式

    1 通信数据转发程序:代理.网关.隧道 代理:是一种有转发功能的应用程序,他扮演了位于服务器和客户端“中间人”的角色,接收客户端发送的请求并转发给服务器:同时也接收服务器返回的响应并转发给客户端. 使 ...

  6. nginx-rtmp

    最近使用ffmpeg推流为rtmp,进行直播.记录一下nginx-rtmp的配置.因为我们要添加ngin-rtmp模块,所以不能直接apt安装. 下载niginx和nginx-rtmp-module的 ...

  7. <img>的title和Alt有什么区别?

    Alt是<img>的特有属性,是图片内容的等价描述,用于图片无法加载时显示,读屏器阅读图片. title 可提高图片高可访问性,除了纯装饰图片外都必须设置有意义的值,搜索引擎会重点分析.鼠 ...

  8. Puppeteer最大化显示,分辨率自适应

    Puppeteer自适应分辨率,可以将defaultViewport设为null, 启动的时候还是半屏显示,点击最大化按钮,可以最大化显示. 这样分辨率能够自适应操作系统. 具体可看:https:// ...

  9. LODOP打印维护适应不同的客户端

    之前的博文:Lodop打印设计.维护.预览.直接打印简单介绍,介绍了打印设计.打印维护.打印预览,直接打印等的区别和使用. 如上面以前博文描述的,打印维护是针对客户端进行调整的,开放打印维护给客户端, ...

  10. [LeetCode] 142. Linked List Cycle II 链表中的环 II

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...