我们的mysql服务在早些时候离线,当我们试图重新启动它时,我们遇到了以下错误:
系统错误2:没有这样的文件或目录ERROR 2002(HY000):无法通过socket'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)
我们检查了mysql的configuration,它正在查找:datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock
但是我们的mysql.sock文件不再存在于/ var / lib / mysql /
我们尝试了'whereis mysql.sock',它返回:mysql:/ usr / bin / mysql / usr / lib / mysql / usr / share / mysql /usr/share/man/man1/mysql.1.gz
几个帮助指南build议运行:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
但是/ temp /是空的。
有谁知道我们可以怎样修复这个问题?
套接字是一个临时文件,在服务启动时创build,模拟到tcp或udp端口,请检查你的mysql日志,看看为什么mysql没有启动。
尝试touch /var/lib/mysql/mysql.sock
只要文件存在,它就可以继续设置套接字。 你也可以把所有权交给mysql用户。
该位置必须是可写和我的MySQL用户可读。 (你的mysql用户可能不同,我认为默认是mysql)
chown -R mysql /var/lib/mysql/
一个粗略的小啧啧在这里: http : //anthologyoi.com/computers/cant-connect-to-local-mysql-server-through-socketerror.html
另外,如果mysqld perocess正在运行,您可能需要杀死所有实例,然后重新启动。 pidof mysqld
应该告诉你是否有实例存在。
而不是whereis
find / -name mysql.sock
命令可能会更有帮助。
如果拒绝启动,可能需要重新安装才能恢复文件。
cp -a /var/lib/mysql /root/mysql_backup
for i in $(rpm -qa | grep "mysql"); do echo "Erasing $i"; echo "$i" >> /root/erased_rpms; rpm -e $i; done
for i in $(rpm -qa | grep "mysql"); do echo "Erasing $i"; echo "$i" >> /root/erased_rpms; rpm -e $i; done
(erased_rpms是为了以防万一以后做了太多)
yum install mysql-server