在日常使用MySQL中经常会遇到一些比较奇葩的问题,不多大部分问题并不会有多大影响所以估计要不是挂了也不会被发现。
今天在测试时就遇到了MySQL挂掉始终无法启动的问题,看了半天日志也没找出到底是怎么回事。
[root@iZ23zpftdweZ ~]# /etc/init.d/mysql start
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/var/iZ23zpftdweZ.pid).
[root@iZ23zpftdweZ ~]# /etc/init.d/mysql start
Starting MySQL.. SUCCESS! // 这是删除MySQL.bin.index后的
在Rekfan网站上提供了多种解决MySQL常见的导致无法启动的解决办法,在这里贴出来供大家查看。
起初我的MySQL无法启动在尝试了一些办法后始终无法启动,查询了半天大致的方法也都是类似的。
然后又回到了Rekfan网站上继续查看,无意中在MySQL安装目录下发现了MySQL.bin.index文件。
对比下网站中提到的方法将该文件删除,于是/etc/init.d/mysql start分分钟启动了MySQL Server。
当然最后也要提醒一下各位找解决办法时一定要仔细阅读内容,以免错过解决办法折腾大半天。
补充方法:终端执行df -h回车先查看是不是硬盘没空间了,MySQL会产生大量的日志导致磁盘爆满。
1.可能是/usr/local/mysql/data/机器名称.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,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186
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后存盘退出重启机器试试。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/31395.html