前段时间打包了一个数据库镜像,可是启动容器以后发现报错 ··· ···mysql
MySQL: Starting MySQL….. ERROR! The server quit without updating PID file
查了网络上的解决方案比较全,遂转帖记录下。linux
由于镜像打包以前是作过主从的,因此这次把数据目录 /data 下的 mysql_MS.index 文件重命名,而后从新启动生成就行了。sql
-rw-rw---- 1 mysql mysql 36 Dec 16 01:43 mysql_MS.index -rw-rw---- 1 mysql mysql 126 Dec 16 01:35 mysql_MS.index.bak
发生这种状况可能的缘由有多种,具体什么缘由最好的办法是先查看下错误日志:数据库
一、多是 /usr/local/mysql/data/mysql.pid 文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 而后从新启动 mysqld!
二、可能进程里已经存在 mysql 进程
解决方法:用命令 “ps -ef|grep mysqld” 查看是否有 mysqld 进程,若是有使用 “kill -9 进程号” 杀死,而后从新启动mysqld!
三、多是第二次在机器上安装 mysql,有残余数据影响了服务的启动。
解决方法:去 mysql 的数据目录 /data 看看,若是存在 mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
四、mysql 在启动时没有指定配置文件时会使用 /etc/my.cnf 配置文件,请打开这个文件查看在 [mysqld] 节下有没有指定数据目录 (datadir)。
解决方法:请在 [mysqld] 下设置这一行:datadir = /usr/local/mysql/data
五、skip-federated 字段问题
解决方法:检查一下 /etc/my.cnf 文件中有没有没被注释掉的 skip-federated 字段,若是有就当即注释掉吧。
六、错误日志目录不存在
解决方法:使用 “chown” “chmod” 命令赋予mysql全部者及权限
七、selinux 惹的祸,若是是 centos 系统,默认会开启 selinux
解决方法:关闭它,打开 /etc/selinux/config,把 SELINUX=enforcing 改成 SELINUX=disabled 后存盘退出重启机器试试。centos
1. MySQL提示:The server quit without updating PID file问题的解决办法bash