“Falha ao gerar o processo principal do mysql: não foi possível executar: Não existe tal arquivo ou diretório”

55

Sou novato no MySQL, por isso fique comigo.

Acabei de atualizar a versão 11.10 para a versão 12.04.

Tudo parecia funcionar sem nenhum problema e todo o meu software e configurações estão funcionando bem. Além do MySQL.

Quando eu tento:

sudo start mysql

Eu recebo um erro:

start: Job failed to start

Onde posso diagnosticar qual é o problema? E (espero) - como resolver isso?

(desativei o início automático seguindo o conselho aqui se isso for de alguma importância)

Atualização 1:

Ambas as saídas de:

cat /var/log/mysql.err 
cat /var/log/mysql.log

estão vazios.

Saída de dmesg | grep mysql :

[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory

Atualização 2:

Como indicado pela AWinter abaixo - parecia que o MySQL desapareceu automaticamente após a atualização e teve que ser reinstalado.

    
por radek 27.04.2012 / 01:06

14 respostas

48

Verifique se o pacote mysql-server-5.1 foi desinstalado, parece que ele pode persistir após a atualização. Eu tive o mesmo erro e tive que remover o servidor MySQL 5.1 e 5.5 e reinstalá-lo.

Primeiro faça um backup do seu diretório / var / lib / mysql / apenas para estar seguro.

sudo cp -R /var/lib/mysql/ ~/mysql

Em seguida, remova o MySQL (isso removerá o php5-mysql e o phpmyadmin, assim como um número de outras bibliotecas, então esteja preparado para reinstalar alguns itens depois disso.

sudo apt-get purge mysql-server-5.1 mysql-common

Remova a pasta / etc / mysql / e seu conteúdo

sudo rm /etc/mysql/ -R

Em seguida, verifique se seus arquivos de banco de dados antigos ainda estão em / var / lib / mysql / se eles não estiverem, copie-os de volta para a pasta e então chown root: root

(só execute estes se os arquivos não estiverem mais presentes)

sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
sudo cd ~/mysql/
sudo cp * /var/lib/mysql/ -R

Em seguida, instale o servidor mysql

sudo apt-get install mysql-server

Por fim, reinstale todos os pacotes ausentes, como phpmyadmin e php5-mysql.

    
por AWinter 27.04.2012 / 05:47
15
sudo dpkg-reconfigure mysql-server-5.5
    
por Kevin C. Smith 05.05.2012 / 18:10
12

Eu tive esse mesmo problema e, para mim, os arquivos de log do InnoDB tinham um tamanho diferente do esperado pelo mysql e falhavam silenciosamente durante a atualização.

Eu tinha um arquivo de configuração personalizado que foi eliminado na atualização para 12.04 que definiu os tamanhos do arquivo de log para algo diferente da configuração padrão.

Você precisa remover os arquivos: / var / lib / mysql / ib_logfile *

Após os arquivos desaparecerem, o mysql pode agora iniciar e criar novos arquivos de log com o tamanho padrão.

    
por Corey Aufang 27.04.2012 / 22:58
9

A maioria dos erros será exibida iniciando o servidor no modo não daemon detalhado e observando a saída:

sudo mysqld --verbose
    
por Ian Mackinnon 13.10.2012 / 23:42
6

Eu tive o mesmo problema, mas nenhuma das respostas acima me ajudou. Então, como uma esperança final, tentei liberar algum espaço em disco. Eu simplesmente removo arquivos de log desnecessários de / var / log, o que libera um pouco de espaço de 2.5G. Então o MySQL começou normalmente.

    
por Eye 03.08.2012 / 04:27
5

Isso às vezes acontece e, embora haja alguns problemas diferentes que poderiam fazer o mysql não iniciar, escreverei aqui alguns dos mais comuns que conheço:

NOTA - Por explicar os problemas mais comuns, presumo que você já tenha tentado remover e instalar, ou simplesmente reinstalar o serviço mysql da seguinte forma:

Para instalar - sudo apt-get install mysql-server mysql-client
Remover - sudo apt-get remove mysql-server mysql-client
Limpar (remover arquivos + configuração) - sudo apt-get purge mysql-server mysql-client
Para reinstalar - sudo apt-get install --reinstall mysql-server mysql-client

    O arquivo
  1. my.cnf não está no diretório padrão. Deve ser (Por padrão) estar localizado em /etc/my.cnf ou /etc/mysql/my.cnf .

  2. Não há espaço suficiente no disco rígido em que os arquivos de dados do mysql estão localizados. Se os bancos de dados ficarem muito grandes e ocuparem 100% do disco rígido, o serviço falhará.

  3. Após a atualização, verifique se o arquivo my.cnf está no lugar correto. Dependendo de como você fez o upgrade ou da versão da qual você fez o upgrade, ele pode estar em /etc/my.cnf ou /etc/mysql/my.cnf , como mencionado anteriormente. Lembre-se também que o arquivo também pode ser nomeado mysql.conf e não apenas my.cnf . Isso acontece nos casos em que você fez o download do binário de mysql.com .

  4. Fazendo um dmesg para ver o que o serviço mysql está jogando, pois uma mensagem de erro ajuda, pois dá o erro de carregamento. Pode também dizer por que isso está acontecendo. Se você digitar dmesg sozinho no terminal, ele mostrará o mundo. O que nós queremos é a informação sobre o mysql, então faça algo como isto: dmesg | grep mysql isto irá lançar quaisquer linhas que contenham mysql nelas.

  5. Verifique se o arquivo my.cnf ou mysql.conf está correto. Em 12.04, o MySQL é a versão 5.5, em 11.10 é a versão 5.1. Pode haver algumas alterações no arquivo conf (que não foram verificadas) e pode parecer bobo, mas com certeza pode causar alguns problemas.

  6. Erros relacionados a problemas de soquete normalmente são culpa do arquivo my.cnf ou mysql.conf apontando para o lugar errado, eles normalmente serão mostrados como:

      

    Não é possível conectar-se ao servidor MySQL local por meio do soquete '/var/run/mysqld/mysqld.sock'

    A outra origem deste problema está relacionada ao arquivo mysql em /etc/init.d que está apontando para a pasta errada porque pode estar usando um script mais antigo do que o necessário para o mysql real no sistema. pode não ter atualizado corretamente, não substituiu o arquivo de configuração, etc ..). Então apenas edite qualquer um desses dois arquivos e veja se eles estão apontando para algum outro lugar e então simplesmente faça um sudo service mysql restart para verificar se funciona.

  7. Para ter uma visão melhor das saídas específicas do erro do mysql, faça o seguinte:

    cat /var/log/mysql.err - mostrará os erros do mysql. Eu faria assim cat /var/log/mysql.err | less se acontecer de você ver muita informação, pois less irá ajudá-lo a percorrer a saída de cat .

    O mesmo vale para cat /var/log/mysql.log Se você vir o erro, talvez colocá-lo na pergunta ou como um comentário ajudará a responder isso mais rapidamente.

  8. Se você estiver com problemas de conexão e o serviço estiver sendo executado, tente verificar se o Firewall do servidor está permitindo conexões através da porta 3306 (Conexões de entrada). Depois verifique se o roteador (se aplicável) não bloqueou a porta 3306. Basicamente faça um teste de rede para ver de onde o problema relacionado à porta atribuída ao mysql é originado.

Se tudo estiver certo, para testar se o serviço mysql está em execução, digite service mysql status

Como último recurso. Se acontecer de você estar executando o mysql, mas você não pode fazer login, tente o seguinte:

  1. Pare o servidor MySQL:

    sudo /etc/init.d/mysql stop ou sudo service mysql stop

  2. Inicie o serviço mysqld manualmente com a configuração manual

    sudo mysqld --skip-grant-tables &

    (Lembre-se de adicionar o & amp; então você terá que abrir outro terminal. O & amp; envia o processo para o segundo plano e você pode matar usando o mesmo terminal).

  3. Faça o login no banco de dados mysql como ROOT

    mysql -u root mysql

  4. Digite o seguinte, substituindo o MyPASSWORD pela sua nova senha

    UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root'; e FLUSH PRIVILEGES; e EXIT;

Isso deve ser suficiente para acessar seu serviço Mysql como root novamente. Espero que ajude.

    
por Luis Alvarado 27.04.2012 / 01:17
4

Eu tive o mesmo problema depois de atualizar para o Ubuntu Server 12.04 LTS, rodando

sudo apt-get install mysql-server 

foi o suficiente para consertá-lo, embora tenha se queixado de um banco de dados antigo da rede. Eu consertei isso removendo o spotweb:

sudo apt-get purge spotweb

e reconfigurando o mysql:

sudo dpkg-reconfigure mysql-server-5.5
    
por RedPixel 20.05.2012 / 15:17
4

Eu adicionarei isso caso alguém enfrente problemas semelhantes. Eu tentei toda a desinstalação e reinstalação sem sucesso. A chave para encontrar a solução foi que o upstart coloca seus logs de erro nessa pasta

/ var / log / upstart /

para o mysql

/var/log/upstart/mysql.log

quando abri, tinha essa mensagem

  

Erro do analisador do AppArmor para /etc/apparmor.d/usr.sbin.mysqld em   /etc/apparmor.d/tunables/global na linha 15: não foi possível abrir   'tunables / home'

Quando procurei na pasta /etc/apparmor.d/tunables / Eu estava faltando o arquivo inicial em que eu criei um

gedit /etc/apparmor.d/tunables/home e copiou o conteúdo de outro computador que tinha essas linhas não comentadas

  

@ {HOME} = @ {HOMEDIRS} / * / / root /

     

@ {HOMEDIRS} = / home /

alguém enfrenta um problema semelhante aqui

link

depois disso consegui reiniciar o serviço

    
por pt123 22.08.2014 / 13:54
2

No meu caso, foi muito mais fácil do que algumas respostas aqui. Eu encontrei o bug relacionado no launchpad e a correção foi mencionada lá no comentário 9:

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
sudo service apparmor restart
    
por Manfred Moser 05.06.2012 / 06:38
1

Após a atualização, descobri que o mysql-server / mysql-server-5.5 não estava instalado e nem o 5.1. Eu renomeie my.cnf para my.cnf_old e tentei instalar o mysql-serven. Durante a instalação, houve uma mensagem de erro informando que a senha raiz não pôde ser definida. Depois disso eu verifiquei minhas configurações, apparmor e assim por diante. Tudo parecia estar bem. Minha próxima tentativa foi reconfigurar o mysql-server, mas ele reclamou que o pacote não foi instalado completamente. Então eu decidi desinstalar e durante este apt-get corrigiu o pacote e agora está funcionando. Não sei porque, porque não mudei nada.

    
por user54914 27.04.2012 / 12:38
1

Eu tive problemas semelhantes, mas fui rapidamente rastreado até o apparmor, que eu lembrei de ter me dado esse problema anteriormente.

Se você fizer alterações nessas configurações e seu sistema usar o apparmor, você poderá também precisa também ajustar /etc/apparmor.d/usr.sbin.mysqld. Por exemplo. estas linhas foram adicionadas (para permitir um link simbólico para o my.cnf, e para permitir que o arquivo com link simbólico seja lido, presumivelmente):

/ usr / sbin / mysqld {     ...   /etc/mysql/*.cnf lr,   /path/to/symlinked/my.cnf r,     ...  }

    
por Simon Nuttall 29.04.2012 / 13:50
1

No meu caso eu tentei instalar o MySQL em uma nova instalação do Ubuntu 12.04, mas eu não entendi porque isso me deu um erro ao definir a senha para o usuário 'root'. Eu tentei todas as soluções acima, mas nada para fazer.

Então eu decidi remover / remover tudo, eu desinstalei o servidor MySQL e removi todas as suas pastas (/ etc / mysql / e / var / lib / mysql /), eventualmente agradecendo a um tipo de aleatoriedade que ele não deu erro durante a reinstalação e consegui definir a senha e iniciar a instância do servidor.

    
por Alexian 10.07.2012 / 10:22
0

No terminal você pode instalá-lo novamente, e faz com que execute my.cnf você pode digitar:

sudo apt-get install mysql-server-5.1
sudo apt-get --reconfigure mysql-server-5.1
sudo apt-get update
sudo start mysql my.cnf

pode funcionar assim.

    
por Michael 06.05.2014 / 20:46
0

Estou tendo problemas ao adicionar performance_schema em [mysqld] in /etc/mysql/my.conf a essa falha. Removida essa linha e o mysql foi capaz de começar de novo.

Editar: Acontece que um gig de ram simplesmente não é suficiente para iniciar o mysqld com o performance_schema ativado. Eu esbarrei em 3 shows e funcionou bem.

    
por ThorSummoner 09.10.2015 / 00:39

Tags