Como reiniciar o MySQL


32

Estou executando o MySQL 5.1.54 e o instalei no Ubuntu através do terminal usando o comando

sudo apt-get install mysql-server

Alterei o my.cnfarquivo e gostaria de parar e iniciar o banco de dados. Eu tentei o seguinte

sudo /usr/bin/mysqld_safe stop

Minha pergunta é como sei que o banco de dados está parado? Quando executo o comando acima, seguido por

sudo mysql -uuser -ppassword

Eu posso entrar novamente no banco de dados. Não deveria me dizer que o banco de dados não está sendo executado?

Alguma sugestão? Obrigado.

EDIT: Eu também tentei

mysqladmin -uuser -ppassword shutdown

e depois

ps aux | grep mysql

Eu recebo a seguinte saída

david    12093  0.0  0.0   6052  1276 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
root     12267  0.0  0.0   6396  1436 pts/1    T    May10   0:00 sudo nano /etc/mysql/my.cnf
root     12269  0.0  0.0   6052  1388 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
mysql    15371  0.3  0.1  55344  9088 ?        Ssl  10:53   0:00 /usr/sbin/mysqld
david    15512  0.0  0.0   5304   864 pts/1    R+   10:54   0:00 grep --color=auto mysql

A saída acima significa que o MySQL foi desligado? Se eu executar mysql -uuser -ppassword, ainda posso entrar no mysql.

Alguma sugestão?

Respostas:


64

Você realmente deve usar os scripts de inicialização do Sys-V localizados em /etc/init.d.

Começar:

sudo /etc/init.d/mysql start

Pare:

sudo /etc/init.d/mysql stop

Reinicie / recarregue as configurações:

sudo /etc/init.d/mysql restart

Verifique o status da execução:

sudo /etc/init.d/mysql status

11
Eu tentei isso e recebo a seguinte mensagem de erro `Em vez de chamar scripts de inicialização por meio do /etc/init.d, use o utilitário service (8), por exemplo, service mysql status '
David

3
@ David Esta é a única resposta certa. serviceé apenas um pequeno programa que procura o script init.d correto para você. Mesmo que você lance a "mensagem de erro", sudo /etc/init.d/mysql start/stopainda fez seu trabalho. Usar serviceé apenas a "nova maneira" de usar scripts de inicialização. Para usar service, basta executar no terminal: service mysql stopou iniciar.
BloodPhilia

@BloodPhilia, eu tentei service mysql stope eu recebo a seguinte mensagem: Rejected send message, 1 matched rules; type="method_call", sender=":1.72" (uid=1000 pid=17673 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")). Alguma ideia?
David

2
@ David Você tentou usá-lo com o sudo? Gosta sudo service mysql stop?
BloodPhilia

11
@BloodPhilia. Sua sugestão funcionou. Obrigado pelos esclarecimentos.
David

13

Nas máquinas Ubuntu, você pode reiniciar o mysql usando os dois comandos:

 1. sudo /etc/init.d/mysql restart

 2. # service mysql restart

No Debian também. Mas o primeiro comando fez todos os meus esforços localhostnão funcionarem. Eles precisariam ser substituídos por 127.0.0.1. O último não teve esse problema.
MA-Maddin

3

Para desligar o mysql, execute:

mysqladmin -uuser -ppassword shutdown

onde usuário e senha é aquele para um usuário com o privilégio SHUTDOWN adequado

Para verificar se foi desligado:

ps aux | grep mysql

Se algum processo (que não seja o comando 'grep') aparecer, ele não foi encerrado.


Eu segui suas instruções e recebo uma saída. Editei minha pergunta usando seu procedimento. Posso me dizer se estou no caminho certo?
David

Eu acho que o desligamento para e inicia automaticamente o mysql. Existe um comando para parar permanentemente o mysql?
David

@ David, a reinicialização automática não é um comportamento de desligamento do mysqladmin. provavelmente o comportamento /etc/init.d/mysql do ubuntu? Não tenho certeza. Acho que a resposta do @ gerryk é a correta para o seu sistema operacional.
dtest

0

Você pode usar o comando kill -9 "PID" para fazer isso, o MySQL Process ID (PID) que pode ser executado nos comandos ps -a ou top. Então você pode iniciá-lo novamente chamando ./"processo principal ".


Oi eu sou novo na linha de comando e MySQL. Você pode me mostrar exatamente o que preciso digitar no terminal?
David

5
kill -9 é um pouco grosseiro, pois não deixa um processo se limpar.
Gerryk

11
Eu não recomendo fazer isso. Dependendo do que o MySQL está fazendo no momento em que para repentinamente, você pode reiniciar em alguns bancos de dados infelizes.
Xenoactive

0

o utilitário systemctl disponível por padrão é usado para gerenciar serviços em sua caixa Linux. pode ser usado para iniciar, reiniciar e parar serviços. Existem outras opções que você pode usar. checkout systemctl?

systemctl stop mysql
systemctl start mysql

Adicione alguns detalhes sobre por que isso deve ajudar. Respostas não explicativas são desencorajadas, o que provavelmente levou ao voto negativo.
kdb 27/10
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.