Come riavviare MySQL


32

Sto eseguendo MySQL 5.1.54 e l'ho installato su Ubuntu tramite il terminale usando il comando

sudo apt-get install mysql-server

Ho modificato il my.cnffile e vorrei interrompere e quindi avviare il database. Ho provato quanto segue

sudo /usr/bin/mysqld_safe stop

La mia domanda è: come faccio a sapere se il database è stato arrestato? Quando eseguo il comando sopra, seguito da

sudo mysql -uuser -ppassword

Posso accedere direttamente al database. Non dovrebbe dirmi che il database non è in esecuzione?

Eventuali suggerimenti? Grazie.

EDIT: ho anche provato

mysqladmin -uuser -ppassword shutdown

e poi

ps aux | grep mysql

Ottengo il seguente output

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

L'output sopra indica che MySQL è stato chiuso? Se corro mysql -uuser -ppasswordposso ancora accedere a mysql.

Eventuali suggerimenti?

Risposte:


64

Dovresti davvero usare gli script di init Sys-V che si trovano in /etc/init.d.

Inizio:

sudo /etc/init.d/mysql start

Fermare:

sudo /etc/init.d/mysql stop

Riavvia / ricarica le configurazioni:

sudo /etc/init.d/mysql restart

Controlla lo stato della corsa:

sudo /etc/init.d/mysql status

1
L'ho provato e ho ricevuto il seguente messaggio di errore "Anziché invocare gli script di init tramite /etc/init.d, utilizzare l'utilità di servizio (8), ad esempio lo stato di mysql di servizio"
David,

3
@David Questa è l'unica risposta giusta. serviceè solo un piccolo programma che cerca lo script init.d giusto per te. Anche se ti lancia il "messaggio di errore", sudo /etc/init.d/mysql start/stopha ancora fatto il suo lavoro. L'utilizzo serviceè solo il "nuovo modo" di utilizzare gli script di avvio. Per usare service, basta eseguire questo sul terminale: service mysql stopo avviare.
BloodPhilia,

@BloodPhilia, ho provato service mysql stoped ottengo il seguente messaggio: 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")). Qualche idea?
David,

2
@David Hai provato a usarlo con sudo? Come sudo service mysql stop?
BloodPhilia,

1
@BloodPhilia. Il tuo suggerimento ha funzionato. Grazie per i chiarimenti.
David,

13

Nelle macchine Ubuntu, puoi riavviare mysql usando entrambi i comandi:

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

 2. # service mysql restart

Anche su Debian. Ma il primo comando ha impedito a tutti i miei di localhostfunzionare. Dovrebbero essere sostituiti da 127.0.0.1. Quest'ultimo non aveva questo problema.
MA-Maddin

3

Per spegnere mysql, esegui:

mysqladmin -uuser -ppassword shutdown

dove user e password è quello per un utente con il privilegio SHUTDOWN corretto

Per verificare che sia stato chiuso:

ps aux | grep mysql

Se vengono visualizzati processi (diversi dal comando 'grep'), non è stato arrestato.


Ho seguito le tue istruzioni e ho ricevuto un risultato. Ho modificato la mia domanda usando la tua procedura. Posso dirmi se sono sulla buona strada?
David,

Penso che l'arresto si arresti e quindi avvii automaticamente mysql. Esiste un comando per interrompere definitivamente mysql?
David,

@David il riavvio automatico non è un comportamento di arresto di mysqladmin. probabilmente il comportamento /etc/init.d/mysql di ubuntu? Non ne sono sicuro. Penso che la risposta di @ gerryk sia quella corretta per il tuo sistema operativo.
DTest,

0

È possibile utilizzare il comando kill -9 "PID" per farlo, l'ID processo MySQL (PID) che è possibile ottenere eseguendo ps -a o comandi principali. Quindi puoi riavviarlo chiamando ./"main process ".


Ciao, sono nuovo alla riga di comando e MySQL. Puoi mostrarmi esattamente quello che devo digitare nel terminale?
David,

6
kill -9 è un po 'maleducato, in quanto non consente a un processo di ripulire dopo se stesso.
gerryk,

2
Non consiglio di farlo. A seconda di cosa sta facendo MySQL nel momento in cui si ferma improvvisamente, potresti riavviare alcuni database infelici.
Xenoactive

0

l'utilità systemctl disponibile per impostazione predefinita viene utilizzata per gestire i servizi nella propria casella di linux. può essere utilizzato per avviare, riavviare e arrestare i servizi. Ci sono altre opzioni che puoi usare. checkout systemctl?

systemctl stop mysql
systemctl start mysql

Si prega di aggiungere alcuni dettagli sul perché questo dovrebbe aiutare. Le risposte non esplicative sono scoraggiate, il che probabilmente ha portato al downvote.
kdb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.