关于mysql安装与[InnoDB] mmap(13742899

2018-11-22  本文已影响55人  YukunWen

引言

mysql安装其实网上有很多教程了,该篇文章主要针对是的出现[InnoDB] mmap(137428992 bytes) failed; errno 12时候的一个解决办法。

正文

  1. 在安装过程中需要注意查看之前是否已经安装过,需要关停以前的服务,并删除相应的包和文件

//查找之前的安装包命令
rpm -qa | grep mysql
//删除命令
yum -y remove xxx包名

图1.操作demo图
  1. 正式安装可以参考网上很多文章
    这里博主列举出参考的文章:https://blog.csdn.net/danykk/article/details/80137223

  2. 在安装过程中出现了一个问题:
    当输入 systemctl restart mysqld.service 的时候总会出现如下错误
    Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

图2.错误示意图

这个时候无论你按照提示输入 systemctl status mysqld.service 或者 journalctl -xe,其实都是得到比较模糊的答案。最好的办法就是去查看日志!

4.查看数据库日志文件
less /var/log/mysqld.log 当然你也可以采用taif等命令,博主习惯了用less。less + G跳转到最后一页。发现有一个启动错误:
[InnoDB] mmap(137428992 bytes) failed; errno 12

图3.内存不足错误

通过 free -m 命令,你会发现swap那一列都是0或者很小。

  1. 解决问题

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

如果需要在重启的时候自动分配swap,则在 /etc/fstab 中增加一行 /swapfile swap swap defaults 0 0

接着继续执行如下语句
swapon -s
free -k
swapoff -a
swapon -a

之后便可以正常启动啦

图4.正常启动示意图

按照2中给出的参考地址继续进行账号密码等一系列的配置,即可完成安装。

More

最后博主给出一些mysql相关的命令
MySQL 相关:
systemctl start mysqld #启动mysql
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重启mysqld
systemctl enable mysqld #设置开机启动
systemctl status mysqld #查看 MySQL Server 状态
本地的mysql连接mysql -u root

防火墙相关:
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #打开防火墙
systemctl stop firewalld #关闭防火墙
systemctl restart firewalld #重启防火墙

上一篇下一篇

猜你喜欢

热点阅读