Eu sou um novato no MySQL, então tenha paciência comigo.
Acabei de atualizar o 11.10 para o 12.04.
Tudo parecia funcionar sem soluços e todo o meu software e configurações estão funcionando bem. Além do MySQL.
Quando 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 os conselhos 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:
Conforme indicado pelo AWinter abaixo - parecia que o MySQL desapareceu automaticamente após a atualização e teve que ser reinstalado.
sudo rm /etc/mysql/ -R
- ele simplesmente não estava presente no meu caso. De qualquer forma - felizmente foi apenas um local de instalação para testar Wordpress .. Queria saber o que iria acontecer em um servidor real o_Oapt-get update
antes, porque removeu o dovecot e o php5-mysql. Eu só poderia reinstalá-los após a atualização. Uma vez que eu tinha feito, tudo estava novamente funcionando bem.-bash: cd: /var/lib/mysql/: Permission denied
e usosudo -i
nem funciona.fonte
Eu tive esse mesmo problema e, para mim, os arquivos de log do InnoDB tinham um tamanho diferente do que o mysql esperava e falharam silenciosamente durante a atualização.
Eu tinha um arquivo de configuração personalizado que foi eliminado na atualização para a versão 12.04, que definiu os tamanhos dos arquivos de log como algo diferente da configuração padrão.
Você precisa remover os arquivos: / var / lib / mysql / ib_logfile *
Após a saída dos arquivos, o mysql agora pode iniciar e criar novos arquivos de log do tamanho padrão.
fonte
A maioria dos erros será exibida iniciando o servidor no modo detalhado não daemon e observando a saída:
fonte
Eu tive o mesmo problema, mas nenhuma das respostas acima me ajudou. Como esperança final, tentei liberar espaço em disco. Simplesmente removo arquivos de log desnecessários de / var / log, que liberaram espaço de 2,5G. Então o MySQL começou normalmente.
fonte
Isso às vezes acontece e, embora existam alguns problemas diferentes que podem fazer com que o mysql não inicie, escreverei aqui alguns dos mais comuns que eu conheço:
NOTA - Por explicar os problemas mais comuns, suponho que você já tentou remover e instalar ou simplesmente reinstalar o serviço mysql da seguinte maneira:
Para instalar -
sudo apt-get install mysql-server mysql-client
Para remover -
sudo apt-get remove mysql-server mysql-client
Para limpar (Remover arquivos + Config) -
sudo apt-get purge mysql-server mysql-client
Para reinstalar -
sudo apt-get install --reinstall mysql-server mysql-client
my.cnf
O arquivo não está no diretório padrão. Ele deve estar (por padrão) estar localizado em/etc/my.cnf
ou/etc/mysql/my.cnf
.Não há espaço suficiente no disco rígido onde estão os arquivos de dados mysql. Se os bancos de dados ficarem muito grandes e ocuparem 100% do disco rígido, o serviço falhará.
Após a atualização, verifique se o
my.cnf
arquivo está no local correto. Dependendo de como você atualizou ou de qual versão você atualizou, ela pode estar dentro/etc/my.cnf
ou/etc/mysql/my.cnf
conforme mencionado anteriormente. Lembre-se também de que o arquivo também pode ser nomeadomysql.conf
e não apenasmy.cnf
. Isso acontece nos casos em que você baixou o binário do mysql.com .Fazer um
dmesg
para ver o que o serviço mysql está lançando como mensagem de erro ajuda, pois fornece o erro de carregamento. Também pode dizer por que isso está acontecendo. Se você digitardmesg
sozinho no terminal, ele mostrará o mundo. O que queremos é a informação sobre o mysql, então faça algo como isto:dmesg | grep mysql
isso exibirá quaisquer linhas que contenham o mysql.Verifique se o arquivo
my.cnf
oumysql.conf
está correto. No 12.04 o MySQL é a versão 5.5, no 11.10 é a versão 5.1. Pode haver algumas alterações no arquivo conf (na verdade não verificamos isso) e pode parecer bobo, mas com certeza pode causar alguns problemas.Erros relacionados a problemas de soquete normalmente são culpa do arquivo
my.cnf
oumysql.conf
apontando para o lugar errado, eles normalmente serão mostrados como:A outra fonte desse problema está relacionada ao
mysql
arquivo,/etc/init.d
pois está apontando para a pasta errada, pois pode estar usando um script mais antigo que o necessário para o mysql real no sistema (ele pode não ter sido atualizado corretamente, não foi substituído) o arquivo de configuração, etc.). Então, basta editar qualquer um desses dois arquivos e ver se eles estão apontando para outro lugar e, em seguida, basta fazer umsudo service mysql restart
para verificar se funciona.Para dar uma olhada melhor nas saídas específicas do erro do mysql, faça o seguinte:
cat /var/log/mysql.err
- Irá mostrar os erros do mysql. Eu faria assimcat /var/log/mysql.err | less
se você ver muitas informações passarem, poisless
isso o ajudará a rolar pela saída decat
.O mesmo vale para
cat /var/log/mysql.log
Se você vir o erro, talvez o coloque na pergunta ou como um comentário ajudará a responder isso mais rapidamente.Se você estiver com problemas de conexão e o serviço estiver em execução, tente verificar se o Firewall do servidor está permitindo conexões pela 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 se originou o problema relacionado à porta atribuída ao mysql.
Se tudo estiver bom, para testar se o serviço mysql está em execução, digite
service mysql status
Como último recurso. Se você estiver executando o mysql, mas não conseguir fazer o login, tente o seguinte:
Pare o servidor MySQL:
sudo /etc/init.d/mysql stop
ousudo service mysql stop
Inicie o
mysqld
serviço manualmente com configuração manualsudo mysqld --skip-grant-tables &
(Lembre-se de adicionar o & else, você terá que abrir outro terminal. O & envia o processo para o segundo plano e você pode matar usando o mesmo terminal).
Entre no banco de dados mysql como ROOT
mysql -u root mysql
Digite o seguinte substituindo MyPASSWORD por sua nova senha
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
Isso deve ser suficiente para fazer login no serviço Mysql como root novamente. Espero que ajude.
fonte
/etc/mysql/my.cnf
no meu caso. Essa localização é correta?dmesg
dá-me pleeenty de saída que está além da minha compreensão: / eu realmente tinha 5.1 instalado - isso tem alguma conseqüência?Eu tive o mesmo problema depois de atualizar para o Ubuntu Server 12.04 LTS, executando
foi o suficiente para corrigi-lo, embora se queixasse de um banco de dados antigo do spotweb. Corrigi isso removendo a spotweb:
e reconfigurando o mysql:
fonte
Vou adicionar este caso alguém enfrenta problemas semelhantes. Eu tentei toda a desinstalação e reinstalação sem sucesso. A chave para encontrar a solução é que o iniciante coloca seus logs de erros nesta pasta
/ var / log / upstart /
para mysql
/var/log/upstart/mysql.log
quando abri tinha essa mensagem
Quando procurei na pasta /etc/apparmor.d/tunables/ , estava faltando o arquivo inicial, então criei um
gedit /etc/apparmor.d/tunables/home e copiou o conteúdo de outro computador que tivesse essas linhas não comentadas
alguém enfrenta um problema semelhante aqui
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303
depois disso eu fui capaz de reiniciar o serviço
fonte
No meu caso, foi muito mais fácil do que algumas respostas aqui. Encontrei o bug relacionado na barra de ativação e a correção foi conforme mencionado no comentário 9:
fonte
Após a atualização, descobri que o mysql-server / mysql-server-5.5 não estava instalado e nem o 5.1. Renomeei 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, 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 estava instalado completamente. Então eu decidi desinstalar e durante este apt-get consertamos o pacote e agora ele está funcionando. Não sei porque, porque não mudei nada.
fonte
Eu tive problemas semelhantes, mas fui rapidamente rastreado para o apparmor, que me lembrava de ter me dado esse problema anteriormente.
Se você fizer alterações nessas configurações e seu sistema usar o apparmor, também poderá ser necessário ajustar o /etc/apparmor.d/usr.sbin.mysqld. Por exemplo. essas linhas foram adicionadas (para permitir um link simbólico para o my.cnf e para permitir a leitura do arquivo vinculado, presumivelmente):
/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}
fonte
No meu caso, tentei instalar o MySQL em uma nova instalação do Ubuntu 12.04, mas não entendi por que isso me causou um erro ao definir a senha do usuário 'root'. Eu tentei todas as soluções acima, mas nada a fazer.
Então decidi limpar / remover tudo, desinstalei o servidor MySQL e removi todas as suas pastas (/ etc / mysql / e / var / lib / mysql /), eventualmente, graças a uma espécie de aleatoriedade, não houve nenhum erro durante o reinstalação e consegui definir a senha e iniciar a instância do servidor.
fonte
No terminal, você pode instalá-lo novamente e executar o my.cnf. Você pode digitar:
pode funcionar dessa maneira.
fonte
Estou tendo problemas para adicionar
performance_schema
menos[mysqld]
em/etc/mysql/my.conf
causa essa falha. Removida a linha e o mysql pôde iniciar novamente.Edit: Acontece Um gig de memória RAM não é suficiente para iniciar o mysqld com o performance_schema ativado. Eu bati para 3 shows e funcionou bem.
fonte