MySQL demon já rodando com o mesmo socket unix

1

Ao tentar iniciar o mysqld demon em uma caixa do CentOS 6.5, recebo o seguinte erro:

[root@hardin ~]# service mysqld start
Another MySQL daemon already running with the same unix socket.
Starting mysqld:                                           [FAILED]

O que é estranho porque o serviço não foi iniciado (está configurado para ser executado na porta padrão):

[root@hardin ~]# service mysqld status
mysqld is stopped

Não sei como encontrar o soquete do Unix que está causando o problema:

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

Eu uso esta caixa como um servidor Git, rodando o GitLab, e costumava funcionar. Depois de uma inicialização a frio, ele não funciona mais porque unicorn não pode se conectar ao MySQL pelo motivo acima:

/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)

Eu estou querendo saber como solucionar isso e descobrir qual serviço está sendo executado na porta do MySQL.

    
por Astaar 06.02.2014 / 10:23

1 resposta

2

Você pode usar

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

para ver qual processo (se houver) possui o soquete e toma a ação apropriada

Se você tem certeza de que não há nenhum outro processo do MySQL em execução, você pode simplesmente excluir o arquivo /var/lib/mysql/mysql.sock . Quando o MySQL inicia, se o socket não existir, ele irá recriá-lo.

    
por 06.02.2014 / 10:34