ERROR 2002 (HY000): Não é possível conectar-se ao servidor MySQL local através do soquete '/var/run/mysqld/mysqld.sock' (2) - Ubuntu 10.04

1

Meu VPS sofreu uma falha de hardware e eu fiquei fora de serviço pelas últimas 24 horas. Agora que está de volta, o MySQL se recusa a trabalhar. Por favor, tenha em mente que o meu VPS com essas configurações exatas foi executado nos últimos 2 meses sem erro, eu não mudei nenhuma configuração de código / banco de dados desde a falha de hardware.

Na linha de comando, simplesmente digitando "sudo mysql" retorna

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Eu não consigo entrar com PhpMyAdmin, recebo 2 erros:

#2002 Cannot log in to the MySQL server
Connection for controluser as defined in your configuration failed.

Meu aplicativo da Web (Codeigniter) retorna o seguinte erro

A Database Error Occurred

Unable to connect to your database server using the provided settings.

Filename: core/Loader.php

Line Number: 346

Estou executando uma pilha LAMP típica no Ubuntu 10.04. Eu ainda tenho espaço livre mais do que suficiente no meu disco rígido (mais de 20 shows), então ficar sem espaço não é um problema.

/var/log/mysql.err não tem nada, é um arquivo vazio. Pesquisei alto e baixo no Google, mas parece estar completamente perdido agora.

EDITAR:

A execução de mysqld me deu

mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
120630 18:41:10 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120630 18:41:10  InnoDB: Initializing buffer pool, size = 8.0M
120630 18:41:10  InnoDB: Completed initialization of buffer pool
120630 18:41:10  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

no começo, agora rodando mysqld , não recebo nada, apenas me retorna ao prompt.

EDIT 2: Executando strace -e trace=file mysqld retornos:

120630 19:17:12 [Note] Plugin 'FEDERATED' is disabled.
open("./mysql/plugin.frm", O_RDONLY)    = -1 EACCES (Permission denied)
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
120630 19:17:12 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
open("/tmp/ibzhYSAn", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibzhYSAn")                 = 0
open("/tmp/ibRf9302", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibRf9302")                 = 0
open("/tmp/ibN6AjrI", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibN6AjrI")                 = 0
120630 19:17:12  InnoDB: Initializing buffer pool, size = 8.0M
120630 19:17:12  InnoDB: Completed initialization of buffer pool
open("/tmp/ibGh8aSn", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibGh8aSn")                 = 0
open("./ibdata1", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
open("./ibdata1", O_RDWR)               = -1 EACCES (Permission denied)
120630 19:17:12  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
    
por Bert B. 01.07.2012 / 00:25

2 respostas

1

Se o arquivo de log estiver vazio, tente iniciar mysqld manualmente, literalmente executando apenas mysqld em um terminal.

Ele deve pegar seu arquivo de configuração automaticamente (por exemplo, /etc/my.cnf ou /etc/mysql/my.cnf ) e executá-lo.

Depois disso, você deve ter erros à vista para corrigir. Se você colocá-los em sua pergunta original também, podemos ajudar ainda mais. O problema pode estar no host: não há memória suficiente ou até mesmo os discos físicos estão sem espaço, mesmo que você ainda não tenha alcançado sua alocação.

Além disso, meus 2 centavos: upstart é uma porcaria quando o material falha. Quando eu tive problemas com o MySQL, eu já recebia essas mensagens "já em execução", mesmo que não houvesse um único mysql[d] - então ignore-o por enquanto.

Você pode verificar seu diretório de dados? Parece que o acidente o corrompeu e você perdeu alguns arquivos. Normalmente é /var/lib/mysql .

  1. Você pode verificar as permissões (elas correspondem ao arquivo .cnf do que deveriam ser)?
  2. Veja ibdata1 , como estão as permissões?

Se você tiver backups, pode ser uma boa ideia usá-los.

    
por 01.07.2012 / 00:39
0

Verifique /var/log/daemon.log por erros de inicialização no mysqld. Você tem um problema que não permite o início do MySQL, mais do que provável.

grep mysql /var/log/daemon.log deve fornecer uma listagem das mensagens de erro pertinentes. Poste de volta com as reclamações de log.

    
por 01.07.2012 / 00:51

Tags