No Ubuntu você deve usar service
:
sudo service mysql start
E no futuro, se e quando você quiser reiniciá-lo:
sudo service mysql restart
Estou usando o MySQL v5.1 na máquina Ubuntu .
O MySQL na minha máquina costumava funcionar. (Executar mysql -u root
me deu a linha de comando do MySQL.)
Esta tarde, fiz o seguinte:
1. verifique o processo ativo relacionado a ' mysql
' por execução:
$ ps aux | grep 'mysql'
mysql 1457 3.3 1.3 130044 27076 ? Ssl 16:22 0:43 /usr/sbin/mysql
2. Eu vi da saída acima o PID do processo mysql é 1457, então eu o matei com:
$ sudo kill 1457
3. agora, se eu executar $ mysql -u root
, recebo um erro:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
o que é razoável desde que eu matei o processo.
Como posso ter meu servidor MySQL funcionando novamente depois que eu o matei?
Eu tentei executar sudo /etc/init.d/mysql start
, mas meu servidor MySQL não inicia. Por que é que?
No Ubuntu você deve usar service
:
sudo service mysql start
E no futuro, se e quando você quiser reiniciá-lo:
sudo service mysql restart
Após algumas pesquisas, encontrei este . Você está usando o Ubuntu, então vá para System -> Administration -> Services
, desmarque o MySQL, salve-o e verifique-o novamente.
Você provavelmente corrompeu um banco de dados até o ponto em que o mysqld não iniciará. Consulte /var/log/daemon.log para erros de inicialização do mysql. Também procure por /var/log/mysql.err e veja se existe alguma coisa lá.
No futuro "Não faça isso" porque o desligamento do servidor de banco de dados não-limpo corromperá muito as tabelas myisam e se você tiver sorte no innodb, apenas causará uma grande reversão que apagará todas as transações malsucedidas .
Você pode encontrar informações sobre mensagens de erro no link
Eu usaria daemontools ou algo assim para manter o mysql em execução no sistema caso de desligamento indesejado dos servidores de banco de dados. No entanto, como todos os outros observaram aqui, a eliminação de servidores de banco de dados é realmente uma má ideia no ambiente de produção.
Para responder a questão do mysql não inicia, é porque o script mysql init verifica o pidfile do mysqld, não tenho certeza se ele verifica a validade do pid, e então o stalelock pode estar parando o mysql para iniciar . O melhor é fazer service mysql restart
ou /etc/init.d/mysql restart
para garantir que o mysql esteja iniciando a partir da base.
Certifique-se de que o serviço mysql esteja sendo executado com ps
e service mysqld status
Verifique também os logs do mysqld, para verificar se houve uma inicialização limpa do processo e se todos os bancos de dados / tabelas foram inicializados corretamente.