ERROR! The server quit without updating PID file (/DB/debug/mysql5735/data/CENTOS7GUI.pid).
今天启动mysql又一次报错:The server quit without updating PID file!记得上次出现这个问题的时候,尝试了一些常规的方法,未果,所以索性重新进行安装。但是,相同的问题今天又出现了!!!OH, my god!恰巧今天时间充裕,尝试各种办法,终于皇天不负有心人,经过一个小时的奋战后,终于让我给搞定,整个过程是这样的!
解决过程
首先,按着自己思路去查看日志文件,相信大家能看到的最多的内容就是Innodb,这是什么玩意儿?其实日志中的信息基本没啥用,就不浪费太多时间了。
然后,使用最直接的办法——百度。相信很多人搜到的结果都是以下几项:
可能是/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后存盘退出重启机器试试
抱着试试看的态度,我把上面所有方法都尝试了一遍,结果。。。然并卵!
通过SHELL调试 命令来查看 启动脚本执行过程
SH -X ETC/INIT.D/MYSQLD START
通过VIM 来查看或者ECHO 看SHELL脚本代码
VIM -X ETC/INIT.D/MYSQLD
basedir=/DB/debug/mysql5735/soft
datadir=/DB/debug/mysql5735/data
1 MY.CNF位置 应该好像是不能放在BASEDIR里面
$basedir/my.cnf
parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server` 如果指定了会解析不到MY.CNF
2 MY.CNF USER参数
不配USER参数 默认是用MYSQL用户来启动,如果设置了其它比如说
USER=MYSQLDBA 那么用其它用户死活启动不了
3 目录权限问题
启动用户必须拥有读写执行权限。
设置目录权限
cd /
chown root:dba DB/
cd DB/
chown root:dba debug/
cd /u01
chown -R mysqldba:dba mysql5735/
经常报出如下
.2021-09-18T02:23:44.523073Z mysqld_safe error: log-error set to '/DB/debug/mysql5735/mysql-error.log', however file don't exists. Create writable for user 'mysqldba'.
这是没有设置USER参数
ERROR! The server quit without updating PID file (/DB/debug/mysql5735/data/CENTOS7GUI.pid).
这个必须用对应的系统用户启动 不能老用ROOT




