记录一次mysql宕机的解决办法
首先先粘贴出来我的错误信息,如下:
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宕机的解决办法的更多相关文章
- redis宕机如何解决?如果是项目上线的宕机呢?
我们先来了解一下 bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了. 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台r ...
- MySQL常见错误及其解决办法
1.连接类 (1).问题:MySQL server has gone away 解决办法:出现该报错常见的原因是服务器超时了并且关闭了连接.缺省地,如果没有事情发生,服务器在 8个小时后关闭连接.如 ...
- 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 ...
- MySQL主从宕机的解决方法
测试系统:centos6.5系统 测试环境IP地址划分: master: 192.168.80.130 slave:192.168.80.143 slave:192.168.80.146 首先模拟(M ...
- (转)从史上八大MySQL宕机事故中学到的经验
一.Percona网站宕机事件 震级:3 发生时长:2011年7月11日 持续时长:数日 地点:加州Pleasanton(幸福屯) 宕机原因:Percona网站主服务器上的3块硬盘损坏,同时因为人员变 ...
- nginx解决服务器宕机、解决跨域问题、配置防盗链、防止DDOS流量攻击
解决服务器宕机 配置nginx.cfg配置文件,在映射拦截地址中加入代理地址响应方案 location / { proxy_connect_timeout 1; proxy_send_timeout ...
- 仓储管理系统500bug记录一下mysql 8小时超时解决办法
HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.TransientDa ...
- [MySQL复制] SQL_ERROR 1032解决办法(non-gtid env)
一.缘由: 在主主同步的测试环境,由于业务侧没有遵循同一时间只写一个点的原则,造成A库上删除了一条数据,B库上在同时更新这条数据. 由于异步和网络延时,B的更新event先到达A端执行,造成A端找不到 ...
- mysql主从延时临时解决办法
主从延时临时解决办法: 主从延迟严重的原因很多,其中有以下原因: 一.由于无主键大表的delete 和update导致. mysql 主从复制时.如果表上没有主键.会导致update和delete操 ...
随机推荐
- 9-ESP8266 SDK开发基础入门篇--编写串口上位机软件
https://www.cnblogs.com/yangfengwu/p/11087613.html 页面修改成这样子 现在看串口发送数据 点击点亮 发送0xaa 0x55 0 ...
- e3s10 网络管理
1. host上设置 iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE # https://www.unixtutorial.org/how-t ...
- Java-Long类型精度丢失问题
问题 今天碰到一个问题,后端需要返回给前端Long类型的id,前端收到的id会发生精度丢失. 测试代码:后端返回的值为344739147160346624 但是前端获取的值为: 解决办法 将返回的值转 ...
- VS2017 Asp.Net调式闪退处理
- linux定时执行shell脚本
写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 Shell俗称壳,类 ...
- chown与chmod的区别
chown 修改文件和文件夹的用户和用户组属性 1.要修改文件hh.c的所有者.修改为sakia的这个用户所有 chown sakia hh.c 这样就把hh.c的用户访问权限应用到sakia作为所有 ...
- 基于Hive的对BiliBili用户信息进行数据分析
用户表字段信息: 1.查出前1000位用户的用户名,关注数和粉丝数. 2.查询关注数大于100的用户的用户名和关注数. 3.查询粉丝数大于100的用户的用户名,粉丝数. 4.查询id为1000的用户的 ...
- ls列出排除的文件
今天有个需求,将从日志文件夹中列出它排除旧备份日志的文件. ls -lhrt --ignore="*.gz" --ignore="*.zip"
- 【winform】主窗体多线程给子窗体传值
1.主窗体多线程给子窗体传值 解决方案:主要使用委托,因为会出现跨线程错误 主窗体 public FormMain() { InitializeComponent(); //background th ...
- Clang的线程安全分析静态工具
本文内容来自 Thread Safety Analysis,如需完整学习,请参考相关链接. Clang线程安全分析工具是C++语言的一种扩展,用于警告代码中潜在的竞争条件.它在编译期间进行静态分析,无 ...