O MySQL não inicia!

11

Estou recebendo este erro ao tentar efetuar login no MySQL a partir da linha de comando:

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

Acho que isso significa que o MySQL ainda não foi iniciado. Então eu tento começar:

sudo /etc/init.d/mysql start

e recebo esta mensagem:

* Starting MySQL database server mysqld [fail] 

Onde eu olho / o que eu faço para iniciar o MySQL? Estou executando o Ubuntu 8.04 e instalei o MySQL através do apt-get. Eu fui capaz de começar e usá-lo algumas vezes, então não sei por que ele simplesmente parou de funcionar.

Atualização: Ao executar o sudo /etc/init.d/mysql status, recebo a mensagem:

* MySQL is stopped.

Atualização # 2: Meus arquivos de log (/var/log/mysql.log & /var/log/mysql.err) estão vazios (se forem os corretos)

    
por Andrew 17.10.2009 / 23:53

10 respostas

10

No Ubuntu 12.04 eu tive esse mesmo problema depois de alterar os tamanhos de buffer no arquivo /etc/mysql/my.cnf, acho que fiquei um pouco empolgado. De qualquer forma, depois de tentar mudá-los de volta para a configuração padrão, o MySQL ainda não iniciaria.

Eu tentei vários métodos diferentes para resolvê-lo, eu notei que /var/run/mysql/mysql.sock estava faltando. Isso pode ser um problema, então você pode verificar lá e, se estiver faltando, você pode substituí-lo fazendo o seguinte:

sudo touch /var/run/mysql/mysql.sock
sudo chown mysql /var/run/mysql/mysql.sock

Isso NÃO corrigiu o problema para mim! Mas isso pode para alguns.

O que eu tive que fazer foi reinstalar completamente o MySQL, para fazer isso você precisará usar o comando sudo. As etapas para remover e reinstalar completamente o MySQL são as seguintes:

Remover o MySQL

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common

Opcionalmente, você pode usar o aptitude, substituindo apt-get --purge por aptitude

Limpar

sudo apt-get autoremove
sudo apt-get autoclean

Remover o diretório MySQL

sudo rm -rf /etc/mysql

Instale o MySQL

sudo apt-get install mysql-server mysql-client

O MySQL agora deve estar em execução, você pode verificar isso fazendo o seguinte:

sudo service mysql status

Você deve ver

mysql start/running, process xxxxx

Espero que isso ajude, e pensei que eu poderia adicionar depois de fazer isso todos os meus bancos de dados e tabelas, onde ainda está disponível, no entanto eu tive que recriar os usuários e senhas para esses bancos de dados.

Nota: Se você tivesse a extensão mysql para php, você precisará reinstalar isso também.

sudo apt-get install php5-mysql
    
por 20.01.2013 / 20:53
3

AVISO: Isso é perigoso, seu mysql NÃO estará seguro e ninguém poderá conectar, editar, etc suas tabelas, não deixe seu servidor rodando com este comando.

Tente iniciá-lo no modo de segurança: /usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables

Se isso funcionar, pode haver problemas com o seu information_schema ou sua (s) tabela (s) mysql. Se não funcionar, algo está errado com a sua instalação.

    
por 18.11.2009 / 17:37
3

Verifique seus arquivos de log como nas outras respostas. Além disso, verifique se você tem o suficiente (ou qualquer espaço em disco). O MySQL pode se comportar dessa maneira em uma partição vazia.

df -h

Se não é isso, confira os documentos do MySQL em depuração de um servidor . Seu myisamchk (se você estiver usando MyISAM) é particularmente útil.

    
por 20.08.2011 / 11:21
3

Eu também recentemente tenho esse problema depois de atualizar o Ubuntu. Ainda não tenho certeza qual é exatamente o problema. Um worakround que funcionou no momento para executar o mysql foi:

sudo aa-complain /etc/apparmor.d/*mysql*

Isso faz com que funcione, indicando que o apparmor parou o mysql de rodar, e explicando porque os logs estão vazios provavelmente também: o mysql não tinha permissão para rodar.

Continua sendo um problema estranho, já que até agora não há "reclamações" disso em /var/log/apparmor , e a única entrada de auditoria em kern.log é a de chamar o perfil para o modo de reclamação.

Observe que, ao fazer isso, também adicionei um arquivo (vazio) /etc/apparmor.d/local/usr.sbin.mysql como o aa-reclamar comandado reclamou sobre não encontrar este arquivo.

    
por 03.07.2012 / 12:44
3

Eu tive o mesmo problema com a minha gota de 512MB Digital Ocean.

Aconteceu que é devido a memória insuficiente.

Uma solução imediata é reiniciar outros serviços para liberar memória, por exemplo.

sudo service apache2 restart

Então, esperançosamente, com memória suficiente, você poderá reiniciar o mysql

sudo service mysql restart

A solução a longo prazo é obter mais RAM, ou criar memória swap .

    
por 10.06.2014 / 08:40
2

Dê uma olhada nos seus arquivos de log. Pelo menos no Debian, você obtém logs mysql * em /var/log .

    
por 18.10.2009 / 00:05
1

Teve esse mesmo problema, acaba que a solução estava me encarando na cara. A viagem estava cheia. Você não recebe registros porque não há onde escrevê-los .....

    
por 19.12.2013 / 16:55
0

O mesmo problema me atormentou por muito tempo em um Ubuntu 12.04 Digital Ocean VPS com o mysql 5.6 instalado a partir de um PPA. Os sintomas eram que o arquivo mysql.sock em /var/run/mysqld/mysql.sock seria removido, mas nunca recriado, então eu estava tendo que executar manualmente os seguintes comandos toda vez que o mysql era atualizado ou o servidor reinicializado:

sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock

Esta foi a resposta de Kyle C (exceto com o mysqld em vez do mysql). No final, eu fiz downgrade para o mysql 5.5, que vem quando você normalmente executaria um comando sudo apt-get install mysql-server . No entanto, não foi direto, então aqui está o que eu tinha que fazer:

# Manually get mysql running if it is not
sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock
sudo service mysql start

# take a dump of all databases 
# we are going to remove the mysql files so don't skip this)
mysqldump -u root -p > all-databases.sql

# Completely remove mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

# Remove mysql 5.6 from debs (otherwise it will reinstall 5.6)
rm /etc/apt/sources.list.d/ondrej-(mysql something please check)

# remove a flag that would prevent the installation
# because it is seen as a downgrade
sudo rm /var/lib/mysql/debian-5.6.flag

# I had to remove the mysql files as well
# reference http://ubuntuforums.org/showthread.php?t=1998260&page=3
rm -rf /var/lib/mysql
rm -rf /etc/mysql*

# Install mysql
sudo apt-get install mysql-server mysql-client mysql-common php5-mysql

# manually update the all-databases.sql file and 
# remove all STATS_PERSISTENT clauses on table creation statments

# re import the databses
mysql -u root -p < all-databases.sql

# restart apache
sudo service apache2 restart

# at this point my wordpress site stated error connecting to database.
# This was resolved by logging into mysql and running:
FLUSH PRIVILEGES

Espero que isso ajude alguém com a mesma dor.

    
por 15.04.2014 / 00:11
0

imagine que isso pode ajudar os outros ... então aqui está.

Eu queria migrar meu mysql 5.5 (padrão do Ubuntu) para o novo 5.7 (queria rodar com o novo tipo JSON nativo)

Eu segui as instruções para instalar a última versão ...
mas o MySQL não queria começar.

Passou um bom tempo procurando e depois encontrou essa linha no /var/log/mysql/errors.log :

unknown variable 'key_buffer=16M'

e isso é algo definido em /etc/mysql/my.cnf que, durante a atualização, optei por manter.

Então, muito fácil depois disso:
substituiu meu my.cnf por my.cnf.dpkg-dist version localizado no mesmo diretório ...

Depois teve que correr

sudo mysql_upgrade -u root -p sudo service mysql restart

e agora o MySQL está de volta e rodando

    
por 06.11.2015 / 11:59
0

Encontrou outra variação sobre o que pode estar errado. Eu mudei o diretório de dados, e acabei me esquecendo de chown o diretório para o usuário mysql, que também falha sem saída alguma. Obviamente errado em retrospectiva, mas a falta de mensagens de erro dificulta encontrar todos os problemas triviais.

    
por 08.11.2016 / 13:19

Tags