刚刚编译完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
最后发现是防火墙的原因,为此搞了一个上午。
文章不错交个朋友