开发反馈环境中数据库挂了,程序无法连接:进系统查看数据库没启动,关了;先重启
[root@jbftest-01 ~]# service mysql restart
MySQL server PID file could not be found! [FAILED]
Starting MySQL..The server quit without updating PID file ([FAILED]/mysqld/mysqld.pid).
失败!
问题可能的原因有多种,具体什么原因最好的办法是先查看下错误日志:
[root@jbftest-01 home]# vi /var/log/mysqld.log
发现原因:由于做了mysql主从配置,另外一台暂时撤销导致这台一直报错,直至mysql挂掉;
然后是看无法重启原因:
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后存盘退出重启机器试试。
8、磁盘空间满了,可使用df -h 查看磁盘空间剩余,如不够可扩容;
9、最后发现是my.cnf文件重复多余了
解决办法其实很简单:将多余的文件my.cnf移除;
因为本身etc下已有my.cnf,导致重复了;
将 /usr/local/mysql 下的 my.cnf 文件移动开,再次启动MySQL服务
[root@jbftest-01 home]# mv /usr/local/my.cnf /home/software
[root@jbftest-01 home]# service mysql restrat
成功!