centos:另一个已经使用相同的unix套接字运行的MySQL守护进程

Mas*_*Mas 77 mysql unix sockets centos6

启动mysqld服务时出现奇怪的错误:

Another MySQL daemon already running with the same unix socket.
Run Code Online (Sandbox Code Playgroud)

我试图列出正在运行的服务并停止它们,但启动mysqld服务时会发生同样的错误.

我可以尝试删除mysqld并重新安装它,但这也会删除数据库吗?

Gec*_*SEO 226

要防止出现此问题,必须从命令行正常关闭服务器,而不是关闭服务器电源.

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

# service mysqld start
Run Code Online (Sandbox Code Playgroud)

这将在关闭机器之前停止正在运行的服务.

基于Centos,当您遇到此问题时,再次备份它的另一种方法是移动mysql.sock:

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

# service mysqld start
Run Code Online (Sandbox Code Playgroud)

重新启动该服务会创建一个名为mqsql.sock的新条目

  • 上面的第二条建议对我有用.一定是因为我没有优雅地关闭服务器.执行`#reboot`并没有解决问题.从未尝试过`shutdown -h now` (5认同)
  • "shutdown -h now"和boot并没有为我解决,但"CentOS"选项就像一个魅力. (5认同)
  • 移动袜子对我来说很完美,谢谢. (4认同)
  • 执行`#mv /var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock.bak`然后执行`#shutdown -h now`它应该可以正常运行. (2认同)

ico*_*ast 18

TL; DR:

以root身份运行,您将全部设置:

rm $(grep socket /etc/my.cnf | cut -d= -f2)  && service mysqld start
Run Code Online (Sandbox Code Playgroud)

更长的版本:

您可以通过手动搜索/etc/my.conf或仅使用来查找MySQL套接字文件的位置

grep socket /etc/my.cnf | cut -d= -f2
Run Code Online (Sandbox Code Playgroud)

很可能是/var/lib/mysql/mysql.sock.然后(当然是root用户,或者用sudopre)删除该文件:

rm /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

然后启动MySQL守护进程:

service mysqld start
Run Code Online (Sandbox Code Playgroud)

删除mysqld不会解决问题.问题是CentOS和RedHat sock在崩溃后不会清理文件,因此您必须自己完成.当然也建议避免关闭系统电源,但有时你无法避免它,所以这个程序将解决问题.