最近也遇到此问题,看到大部分的解决方式是改系统的设置啊,权限的问题;我感觉解决问题的思路如下
一、此mysql是部署时启动遇到的?还是正常运行的库挂机后重启遇到的?
如果是后者,使用:如下内容进行处理
1、查看3306端口(mysql的端口)被谁占用,是否因端口占用出错
netstat -nlap |grep 3306
2、根据进程id查找应用,
ps -aux|grep 15223
出现此类问题极有可能是因为数据库的端口被别的应用占用导致。
确定可以把应用杀掉扣杀掉,再启动数据库就可以了。
如果不是上面情况,可以查看后台日志报错信息啥的,进行分析。
如果部署的时候出现的,可以采用
1、可能是 mysql的数据存放目录 mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 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 = /XX/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后存盘退出重启机器试试。
二、遇到此类问题,处理方法
1、明确要解决的什么?先有尝试方案,但也要有风险处理意识
如果是已存数据库里边的数据需要备份,再进行那些尝试性工作,切记切记!!!
2、解决过程中会发现新的问题,再去解决时务必要回到主路上