启动mysqld服务时出现一个奇怪的错误:
Another MySQL daemon already running with the same unix socket.
我试图列出正在运行的服务并停止它们,但是启动mysqld服务时会发生相同的错误。
我可以尝试删除mysqld并重新安装它,但是这也会删除数据库吗?
Answers:
为防止出现此问题,必须从命令行正常关闭服务器,而不要关闭服务器电源。
#shutdown -h现在
这将在关闭计算机电源之前停止正在运行的服务。
在Centos的基础上,遇到此问题时再次恢复它的另一种方法是移动mysql.sock:
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
# service mysqld start
重新启动服务将创建一个名为mqsql.sock的新条目。
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
那么# shutdown -h now
,它应该很好。
以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
。然后(当然,或者以root用户身份sudo
)删除该文件:
rm /var/lib/mysql/mysql.sock
然后启动MySQL守护进程:
service mysqld start
删除mysqld
根本无法解决问题。问题在于CentOS和RedHatsock
在崩溃后不会清理文件,因此您必须自己做。(当然)也建议避免关闭系统电源,但是有时您无法避免关闭电源,因此此过程可以解决问题。
cut -d= -f2
位可能会出现错误的,因为你所期望的一个值后出现=
的迹象,但=
就是传递给值-d
选项:换句话说,=
被用作分隔符cut
。
/etc/my.cnf
用/etc/mysql/my.cnf
。
grep '^socket[[:space:]]=' /etc/my.cnf
,否则您最终可能会删除不想要的内容。
我已找到解决此问题的任何人的解决方案,将套接字目录更改为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
为了自动清理.sock文件,请将这些行立即放在文件“ /etc/init.d/mysqld”中。
test -e /var/lib/mysql/mysql.sock
SOCKEXIST=$?
ps cax | grep mysqld_safe
NOPIDMYSQL=$?
echo NOPIDMYSQL $NOPIDMYSQL
echo SOCKEXIST $SOCKEXIST
if [ $NOPIDMYSQL -eq 1 ] && [ $SOCKEXIST -eq 0 ] ; then
echo "NOT CLEAN"
rm -f /var/lib/mysql/mysql.sock
echo "FILE SOCK REMOVED"
else
echo "CLEAN"
fi
它为我工作。我之所以必须这样做是因为我没有UPS,而且经常发生电源故障。
问候。
在操作系统重新启动期间,MySQL服务无法正常关闭时,可能会出现某些情况。/var/lib/mysql/mysql.sock已被保留。这样可以防止“ mysqld”启动。
这些步骤可能会帮助:
1:服务mysqld启动killall -9 mysqld_safe mysqld服务mysqld启动
2:rm /var/lib/mysql/mysql.sock服务mysqld启动
要启动MySQL服务,您可以删除'/var/lib/mysql/mysql.sock'并再次启动MySQL服务:
删除套接字文件:
[root@server ~]# rm /var/lib/mysql/mysql.sock
rm: remove socket `/var/lib/mysql/mysql.sock'? yes
启动MySQL服务:
[root@server~]# service mysqld start
Starting mysqld: [ OK ]
这将帮助您解决问题。
这只是由于mysql服务异常终止而发生的。删除或备份/var/lib/mysql/mysql.sock文件,然后重新启动mysql。
如果有任何问题,请让我知道。
我只是经历了这个问题,没有任何建议可以解决我的问题。虽然我无法在启动时启动MySQL并在日志中找到相同的消息(“另一个MySQL守护程序已经在使用相同的unix套接字运行”),但是一旦到达控制台,我便能够启动该服务。
在我的配置文件中,找到以下行:bind-address=xx.x.x.x
。我随机决定将其注释掉,并且启动时的错误消失了。因为绑定地址可以提供安全性,所以我决定进一步探索它。我使用的是机器的IP地址,而不是IPv4环回地址- 127.0.0.1
。
总之,通过使用127.0.0.1
作为bind-address
,我能够解决这个错误。我希望这对有此问题但无法使用上述详细答案解决的人有所帮助。
# reboot
并不能解决问题。从未尝试过shutdown -h now