Starting MySQL… ERROR! The server quit without updating PID file

刚编译完 MySQL 遇到这个问题?? 别着急,下面是本人总结,据说看完的99%都解决了!

1、你初始化数据库了吗??

/usr/local/mysql/bin/mysql_install_db 

2016-05-25 19:56:18 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld –initialize
2016-05-25 19:56:18 [ERROR] The data directory needs to be specified.

我的是 MySQL 5.7,新版已经改成用 mysqld –initialize 来初始化数据库了

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

注意:
1)后面的参数一定要加上,–user代表运行用户,–basedir代表MySql安装目录,–datadir代表数据库数据所在目录,每个人的配置不一样,根据自己的编译参数修改一下。
2)执行前,请先清空编译前指定的datadir,默认是在安装目录的data/(我编译时指定在了/data/mysql),否则会报如下错误:

–initialize specified but the data directory has files in it. Aborting.
2016-05-25T12:07:27.006980Z 0 [ERROR] Aborting

2、可能是 datadir 目录没有写的权限

chown -R mysql:mysql /data/mysql && chmod -R 755 /data/mysql

3、错误日志文件没有权限(根据你的编译参数和my.cnf查看你的错误文件路径)

[chown -R mysql:mysql /var/log/mysqld.log && chmod -R 755 /var/log/mysqld.log

4、可能进程里已经存在mysql进程

ps -ef | grep mysql

如果有使用 “kill -9 进程号” 杀死,然后重新启动mysqld!

5、可能是第二次在机器上安装MySQL,有残余数据影响了服务的启动。
清空之前的 datadir 目录,和MySQL安装目录,如果存在mysql-bin.index,就赶快把它删除掉吧。

6、MySQL在启动时没有指定配置文件时会使用 /etc/my.cnf 配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
请在[mysqld]下设置这一行:

datadir = /data/mysql

7、skip-federated字段问题
检查一下/etc/my.cnf文件中有没有没被注释掉的 skip-federated 字段,如果有就立即注释掉吧。

8、selinux惹的祸,如果是centos系统,默认会开启selinux
关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

Related post

最新文章

Return Top