mysql:failed,启动失败,mmap failed-Cannot allocate memory for the buffer pool

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 在使用mysql5.7进行当做网站的数据库时,有时候会莫名死掉,网站也会因此打不开,重新启动mysql也无法正常启动。通过查看mysql的告警日志发现:cat /etc/my.cnf...log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid...cat /var/log/mysqld.log发现是因为mysql无法分配足够的内存供使用,因此无法正常启动。

在使用mysql5.7进行当做网站的数据库时,有时候会莫名死掉,网站也会因此打不开,重新启动mysql也无法正常启动。通过查看mysql的告警日志发现:

cat /etc/my.cnf
...
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
...
cat /var/log/mysqld.log

发现是因为mysql无法分配足够的内存供使用,因此无法正常启动。

2017-08-26T01:13:48.030515Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
2017-08-26T01:13:48.030540Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2017-08-26T01:13:48.030555Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2017-08-26T01:13:48.030583Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2017-08-26T01:13:48.030595Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-08-26T01:13:48.030606Z 0 [ERROR] Failed to initialize plugins.
2017-08-26T01:13:48.030614Z 0 [ERROR] Aborting

因为是服务器centos7,内存仅有1G,因此需要设置swap空间,使用free命令查看:

free    total    used     fre     shared   buff/cache   available
Mem:   1016380   718408   119792    58364   178180    102636
Swap:   0           0           0

发现没有分配swap空间,于是执行以下命令(创建2G的swap空间)

[root@coolesthacker ~]# dd if=/dev/zero of=/swap_file bs=4096 count=512k
524288+0 records in
524288+0 records out
2147483648 bytes (2.1 GB) copied, 6.18081 s, 347 MB/s
[root@coolesthacker ~]# mkswap /swap_file
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=*********************************
[root@coolesthacker ~]# chmod 600 /swap_file
[root@coolesthacker ~]# swapon /swap_file
[root@coolesthacker ~]# swapon -s
Filename                Type        Size    Used    Priority
/swap_file                file  2097148 0   -1
[root@coolesthacker ~]# free
total   used   free    shared  buff/cache available
Mem:   1016380 722288  67684  58396  226408   87340
Swap:       2097148           0     2097148

设置完成之后,进入etc/fstab进行设置,这样系统在重新启动时会依照之前的配置自动设置swap空间。

vim /ect/fstab

在文件中加入以下一句保存后就可以了

/swap_file   swap    swap    sw  0   0

然后重新启动mysql,发现启动正常^_^。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
关系型数据库 MySQL 数据库
MySQL【部署 03】8.0.25离线部署(下载+安装+配置)Failed dependencies 问题处理及8.0配置参数说明
MySQL【部署 03】8.0.25离线部署(下载+安装+配置)Failed dependencies 问题处理及8.0配置参数说明
121 0
|
6月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL安装--connect to server的界面上输入密码显示connection failed
MySQL安装--connect to server的界面上输入密码显示connection failed
187 0
|
11月前
|
关系型数据库 MySQL Linux
MySQL 启动失败的常见原因---发表到爱可生开源社区
MySQL 启动失败的最常见的原因有两类,分别是无法访问系统资源和参数设置错误造成的,下面分别分析如下。
225 0
|
11月前
|
关系型数据库 MySQL
|
关系型数据库 MySQL Linux
linux 安装mysql ERROR:Job for mysqld.service failed See “systemctl status mysqld.service”
linux 安装mysql ERROR:Job for mysqld.service failed See “systemctl status mysqld.service”
243 0
|
关系型数据库 MySQL 测试技术
mysql缺少binlog启动失败
因为磁盘满了,就直接把binlog都统统给删了(通常会留最后几个,因为直觉告诉我,都删了肯定有问题),今天没注意都给删了,然后起msyql时就起不来了。
244 0
mysql缺少binlog启动失败
|
关系型数据库 MySQL Linux
linux系统mysql服务启动失败
linux系统mysql服务启动失败
linux系统mysql服务启动失败
|
存储 监控 关系型数据库
问题排查:线上MySQL启动报错:Job for mysqld.service failed because the control process exite
问题排查:线上MySQL启动报错:Job for mysqld.service failed because the control process exite
6148 0
问题排查:线上MySQL启动报错:Job for mysqld.service failed because the control process exite
|
关系型数据库 MySQL PHP
MySQL - 如何查看 MySQL 服务启动失败具体问题
MySQL - 如何查看 MySQL 服务启动失败具体问题
212 0
MySQL - 如何查看 MySQL 服务启动失败具体问题
|
监控 关系型数据库 MySQL
阿里云CentOS 7.2 MySQL服务启动失败的解决思路
阿里云 CentOS 7.2 MySQL服务启动失败的解决思路 前言 : 昨天刚刚搭建好的MySQL让老大看了一下,经过测试已经完成任务。但是今天早晨来的时候发现服务器被关了,此时我的心情崩溃的,但是我非常冷静的解决了MySQL问题。
1343 0