MySQL启动报错分析

2021-02-28T12:38:00

刚刚编译完MySQL数据库无缘无故不能链接,重启或者连接都报错。

故障

[root@Jy ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)
[root@Jy ~]# service mysqld start
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid).

故障分析

1、配置文件my.cnf问题

MySQL在启动过程中,会寻找配置文件my.cnf这个文件要指定datadir数据库的数据目录

#datedir是指向你的数据库数据目录
datadir=/date/sqldb

2、MySQL用户权限

# 赋予安装目录权限
chown -R mysql:mysql /usr/local/mysql
# 赋予数据目录权限
chown -R mysql:mysql /date/sqldb

3、skip-federated字段问题

检查my.cnf是否存在skip-federated字段,如果有请注释或者删除

4、安装问题

可能在编译安装过程中,重复安装或者二次安装。产生了残余数据影响了启动

find / -name mysql-binlog*

查看MySQL二进制目录,是否存在mysqlbinlog.index残余数据,请删除再执行命令

5、可能存在mysql进程

ps -ef | grep mysqld

pkill -9 mysqld

系统是否存在进程,使用kill -9把进程杀掉再执行重启命令

6、防火墙原因

CentOS会默认启动SELINUX

sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config;

7、关注错误日志

find / -name mysql.err
cat /usr/local/mysql/mysql.err

最后发现是防火墙的原因,为此搞了一个上午。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »