MySQL 恶魔已经使用相同的 Unix 套接字运行

Ast*_*aar 2 mysql centos gitlab

尝试mysqld在 CentOS 6.5 机器上启动恶魔时,出现以下错误:

[root@hardin ~]# service mysqld start
Another MySQL daemon already running with the same unix socket.
Starting mysqld:                                           [FAILED]
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为服务没有启动(它被配置为在默认端口上运行):

[root@hardin ~]# service mysqld status
mysqld is stopped
Run Code Online (Sandbox Code Playgroud)

我不确定如何找到导致问题的 Unix 套接字:

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  10     [ ]         DGRAM                    12056  /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     8720   @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     12878  /var/run/mcelog-client
unix  2      [ ]         DGRAM                    9289   @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    12440  @/org/freedesktop/hal/udev_event
unix  2      [ ACC ]     STREAM     LISTENING     12275  /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     13128  /var/run/abrt/abrt.socket
unix  2      [ ACC ]     STREAM     LISTENING     12415  @/var/run/hald/dbus-jQMFHN9EAI
unix  2      [ ACC ]     STREAM     LISTENING     12408  @/var/run/hald/dbus-YQIZ9h7s4Q
unix  2      [ ACC ]     STREAM     LISTENING     12371  /var/run/acpid.socket
unix  2      [ ]         DGRAM                    14119
unix  3      [ ]         STREAM     CONNECTED     13579  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     13578
unix  2      [ ]         DGRAM                    13521
unix  3      [ ]         STREAM     CONNECTED     13493
unix  3      [ ]         STREAM     CONNECTED     13492
unix  2      [ ]         DGRAM                    13130
unix  2      [ ]         DGRAM                    13058
unix  2      [ ]         DGRAM                    13023
unix  2      [ ]         DGRAM                    12875
unix  2      [ ]         DGRAM                    12840
unix  3      [ ]         STREAM     CONNECTED     12773  /var/run/acpid.socket
unix  3      [ ]         STREAM     CONNECTED     12772
unix  3      [ ]         STREAM     CONNECTED     12767  @/var/run/hald/dbus-YQIZ9h7s4Q
unix  3      [ ]         STREAM     CONNECTED     12766
unix  3      [ ]         STREAM     CONNECTED     12716  @/var/run/hald/dbus-YQIZ9h7s4Q
unix  3      [ ]         STREAM     CONNECTED     12634
unix  3      [ ]         STREAM     CONNECTED     12714  @/var/run/hald/dbus-YQIZ9h7s4Q
unix  3      [ ]         STREAM     CONNECTED     12534
unix  3      [ ]         STREAM     CONNECTED     12435  @/var/run/hald/dbus-jQMFHN9EAI
unix  3      [ ]         STREAM     CONNECTED     12434
unix  3      [ ]         STREAM     CONNECTED     12410  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     12409
unix  2      [ ]         DGRAM                    12375
unix  3      [ ]         STREAM     CONNECTED     12295  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     12294
unix  3      [ ]         STREAM     CONNECTED     12289
unix  3      [ ]         STREAM     CONNECTED     12288
unix  3      [ ]         DGRAM                    9308
unix  3      [ ]         DGRAM                    9307
Run Code Online (Sandbox Code Playgroud)

我使用这个盒子作为 Git 服务器,运行 GitLab,它曾经可以工作。冷启动后它不再工作,因为由于unicorn上述原因无法连接到 MySQL:

/home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) (Mysql2::Error)
Run Code Online (Sandbox Code Playgroud)

我想知道如何解决这个问题并找到 MySQL 端口上运行的服务。

use*_*517 5

您可以使用

lsof -U | grep -i mysql
mysqld    28944     mysql   12u  unix 0xffff88002cacb6c0      0t0  532368 /var/lib/mysql/mysql.sock
mysqld    28944     mysql   29u  unix 0xffff88002a724380      0t0  532402 /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

查看哪个进程(如果有)拥有套接字并采取适当的措施

如果您确定没有其他 MySQL 进程在运行,您可以简单地删除该/var/lib/mysql/mysql.sock文件。当 MySQL 启动时,如果套接字不存在,它将重新创建它。

  • 没有进程使用它,但删除文件解决了这个问题。我不知道这样做是可能的。如果下次重新启动时再次发生这种情况,我将进行更多调查。谢谢。 (2认同)