启动mysqld服务时出现一个奇怪的错误:
Another MySQL daemon already running with the same unix socket.
我尝试列出正在运行的服务并停止它们,但在启动mysqld服务时出现相同的错误。
我可以尝试删除mysqld并重新安装它,但这样做会删除数据库吗?
发布于 2014-01-10 01:16:10
TL;DR:
以root用户身份运行以下命令,您就可以完成所有设置:
rm $(grep socket /etc/my.cnf | cut -d= -f2) && service mysqld start
更长的版本:
您可以在/etc/my.conf
中手动查找MySQL套接字文件的位置,也可以直接使用
grep socket /etc/my.cnf | cut -d= -f2
它很可能是/var/lib/mysql/mysql.sock
。然后(当然是以根用户身份,或者在前面加上sudo
)删除该文件:
rm /var/lib/mysql/mysql.sock
然后启动MySQL守护进程:
service mysqld start
删除mysqld
根本不能解决问题。问题是CentOS & RedHat不会在崩溃后清理sock
文件,所以您必须自己清理。避免关闭你的系统(当然)也是被建议的,但有时你无法避免,所以这个过程会解决这个问题。
发布于 2013-12-06 02:31:07
我已经为这个问题中的任何人找到了解决方案,将套接字目录更改为my.cnf文件中的新位置
socket=/var/lib/mysql/mysql2.sock
和service mysqld start
或者像GeckoSEO回答的那样快速
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
# service mysqld start
发布于 2013-12-07 05:49:00
我对此的解决方案是在/var/lib/mysql/目录中硬关机时留下的mysql.sock。Mysql认为它已经在运行了,但它并没有运行。
https://stackoverflow.com/questions/20407292
复制相似问题