由于系统内存被占完,数据挂掉,把清理内存和重启服务的重任交给我们的运维同志。两天没有解决问题,没办法只能我这个开发自己去搞,毕竟是我们的项目数据库。下面就是在接近一天半的时间里我的折腾了,踩坑填坑。
启动mysql服务
service mysql start
# 这就是我启动时报的错误
Starting MySQL.The server quit without updating PID file (/[失败]ysql5.7/data/hoomsun-back.pid)
然后就很懵逼,在度娘上看到解决方案,90%以上都是相似的,然而这些可能都不太适合我这个错误,可能也有帮助。以下的这7中解决方法,我测试过得有 1、3、4、6、7 有可能是这前期的几种测试造就了最终的成功。
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !
4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
查看错误日志
tail /home/mysql5.7/data/hoomsun-back.err
我的日志中出现的错误,看了别人的解决办法,都照做。没有解决问题。
我解决问题关键来了
突然的想法,直接执行mysql执行文件会是什么效果。
cd /home/mysql5.7/bin
./mysqld
报错了
Please read "Security" section of the manual to find out how to run mysqld as root!
查找了一下,加参数试
./mysqld --user=mysql
这次成功。
然后启动mysql
service mysqld start
终于成功解决了问题。 希望我的这种方法帮到你。