Não é possível iniciar o mysqld no servidor OSX - estava funcionando antes

2

Tivemos um aplicativo da web em execução em um servidor OSX com suporte do mysql. O servidor está executando o kernel Darwin 9.8.0. A versão do Mysql é 5.0.67.

Estava funcionando bem antes, e não estamos totalmente certos do que poderia ter mudado. O computador foi reiniciado desde então para ver se iria iniciar o mysql. Infelizmente, isso significa que não posso dizer se foi reinicializado erroneamente por outro usuário antes disso, e isso causou o problema.

Os erros que estou recebendo são:

/usr/libexec/mysqld: File './mysql-bin.124367' not found (Errcode: 13)
090826 14:42:50 [ERROR] Could not use mysql-bin for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.

Esse arquivo que ele não encontrou realmente existe ... Então, eu desliguei o log no my.cnf para ver o que mais poderia estar acontecendo. Agora o erro que recebo é:

090826 14:52:16 [ERROR] Can't start server: Bind on TCP/IP port: Can't assign requested address
090826 14:52:16 [ERROR] Do you already have another mysqld server running on port: 3306 ?

Eu fiz ps -Aef | grep mysql e não encontrei outros daemons em execução. Com ifconfig vi que o dispositivo de loopback estava de fato ativo. Eu tentei ligar o mysqld a uma porta diferente (3307), mas recebi o mesmo erro (mas para 3307).

Eu tentei iniciar o mysqld como root. Eu tentei iniciá-lo passando nos argumentos --user = _mysql.

Eu não consigo descobrir o que mais tentar. Alguma sugestão?

EDIT: @nambuls: netstat -n -p tcp | grep 3306 não retorna nada.

EDIT2: o log de erros também mostra avisos - eu não postei antes, pois eram apenas "avisos", mas pode ajudar.

090826 15:16:02 [Warning] Can't create test file /var/mysql/tanglewood.lower-test
090826 15:16:02 [Warning] Can't create test file /var/mysql/tanglewood.lower-test

Não sei por que não consigo criar o arquivo de teste - / var / mysql é 775 para _mysql: admin e iniciei o processo como admin.

    
por Matt 26.08.2009 / 22:05

3 respostas

3

tente adicionar isso ao seu arquivo my.cnf:

  [mysqld]
  bind-address      = 127.0.0.1

Note que isto só permitirá conexões mysql locais. Se você estiver executando o seu servidor web no mesmo host, este endereço de conexão será bom para a sua configuração.

Se o 127.0.0.1 funcionar, você pode tentar o endereço IP do sistema. O bind-address não deve ser normalmente requerido.

    
por 26.08.2009 / 22:36
1

Ok - encontrei o problema. O arquivo de configuração mysql (/etc/my.cnf) foi configurado para ligar um endereço IP diferente daquele atualmente atribuído ao dispositivo de rede. Eu mudei para vincular o endereço atual e consegui trabalhar de novo. A dica foi que não era possível ligar o 3306, mesmo que eu não conseguisse encontrar nada em lugar algum usando-o.

    
por 26.08.2009 / 22:40
0

você verificou uma saída netstat?

netstat -n -p tcp | grep 3306

para ver se já existe um programa escutando na porta mysql?

Se não retornar nada, a porta não está sendo usada.

    
por 26.08.2009 / 22:08

Tags