So starten Sie MySQL neu

32

Ich führe MySQL 5.1.54 aus und installiere es mit dem Befehl über das Terminal auf Ubuntu

sudo apt-get install mysql-server

Ich habe die my.cnfDatei geändert und möchte die Datenbank stoppen und dann starten. Ich habe Folgendes versucht

sudo /usr/bin/mysqld_safe stop

Meine Frage ist, woher weiß ich, dass die Datenbank gestoppt ist? Wenn ich den obigen Befehl ausführe, gefolgt von

sudo mysql -uuser -ppassword

Ich kann mich gleich wieder in die Datenbank einloggen. Sollte es mir nicht sagen, dass die Datenbank nicht läuft?

Irgendwelche Vorschläge? Vielen Dank.

EDIT: Ich habe es auch versucht

mysqladmin -uuser -ppassword shutdown

und dann

ps aux | grep mysql

Ich erhalte die folgende Ausgabe

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

Bedeutet die obige Ausgabe, dass MySQL heruntergefahren wurde? Wenn ich laufe, mysql -uuser -ppasswordkann ich mich trotzdem in mysql einloggen.

Irgendwelche Vorschläge?

David
quelle

Antworten:

64

Sie sollten wirklich die Sys-V-Init-Skripte verwenden, die sich in befinden /etc/init.d.

Start:

sudo /etc/init.d/mysql start

Halt:

sudo /etc/init.d/mysql stop

Konfigurationen neu starten / neu laden:

sudo /etc/init.d/mysql restart

Laufstatus prüfen:

sudo /etc/init.d/mysql status
gerryk
quelle
1
Ich habe versucht, und ich erhalte die folgende Fehlermeldung `Anstatt Init - Skripte durch /etc/init.d aufrufen, verwenden Sie den Service (8) -Werkzeug, zB Service mysql Status'
David
3
@ David Dies ist die einzig richtige Antwort. serviceist nur ein kleines Programm, das das richtige init.d-Skript für Sie sucht. Auch wenn es dir die "Fehlermeldung" gibt, sudo /etc/init.d/mysql start/stophat es trotzdem seinen Job gemacht. Verwenden serviceist nur die "neue Art", Startskripte zu verwenden. Um es zu benutzen service, führen Sie es einfach auf dem Terminal aus: service mysql stopoder starten Sie es.
BloodPhilia
@BloodPhilia habe ich versucht , service mysql stopund ich erhalte die folgende Meldung: 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")). Irgendwelche Ideen?
David
2
@ David Haben Sie versucht, es mit sudo zu verwenden? Wie sudo service mysql stop?
BloodPhilia
1
@BloodPhilia. Ihr Vorschlag hat funktioniert. Vielen Dank für die Klarstellung.
David
13

Auf Ubuntu-Rechnern können Sie mysql mit beiden Befehlen neu starten:

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

 2. # service mysql restart
Gopinath
quelle
Auch auf Debian. Aber der erste Befehl ließ alle meine localhosts nicht funktionieren. Sie müssten durch ersetzt werden 127.0.0.1. Letzterer hatte dieses Problem nicht.
MA-Maddin
3

Führen Sie zum Herunterfahren von mysql Folgendes aus:

mysqladmin -uuser -ppassword shutdown

Dabei ist Benutzer und Kennwort das für einen Benutzer mit dem entsprechenden SHUTDOWN- Recht

So überprüfen Sie, ob es heruntergefahren wurde:

ps aux | grep mysql

Wenn Prozesse (mit Ausnahme des Befehls 'grep') angezeigt werden, wurde der Computer nicht heruntergefahren.

DTest
quelle
Ich habe Ihre Anweisungen befolgt und bekomme eine Ausgabe. Ich habe meine Frage mit Ihrem Verfahren bearbeitet. Kann ich mir sagen, ob ich auf dem richtigen Weg bin?
David
Ich denke, Herunterfahren stoppt und startet dann automatisch MySQL. Gibt es einen Befehl, um MySQL dauerhaft zu stoppen?
David
@ David der automatische Neustart ist kein Verhalten von mysqladmin Herunterfahren. wahrscheinlich Ubuntus /etc/init.d/mysql Verhalten? Ich bin mir nicht sicher. Ich denke, die Antwort von @ gerryk ist die richtige für Ihr Betriebssystem.
DTest
0

Sie können dazu den Befehl kill -9 "PID" verwenden, die MySQL-Prozess-ID (PID), mit der Sie ps -a oder top-Befehle ausführen können. Dann können Sie es erneut starten, indem Sie ./"main process "aufrufen.

Diogo
quelle
Hallo, ich bin neu in der Kommandozeile und MySQL. Können Sie mir genau zeigen, was ich zum Eintippen in das Terminal benötige?
David
5
kill -9 ist etwas unhöflich, da es keinen Prozess hinter sich lässt.
Gerryk
1
Ich empfehle das nicht. Abhängig davon, was MySQL zum Zeitpunkt des plötzlichen Stopps tut, können Sie möglicherweise zu einigen unglücklichen Datenbanken zurückkehren.
Xenoactive
0

Das standardmäßig verfügbare Dienstprogramm systemctl wird zum Verwalten von Diensten in Ihrer Linux-Box verwendet. Es kann zum Starten, Neustarten und Beenden von Diensten verwendet werden. Es gibt andere Optionen, die Sie verwenden können. Kassensystemctl?

systemctl stop mysql
systemctl start mysql
Shekhar
quelle
Bitte geben Sie an, warum dies hilfreich sein sollte. Von nicht erklärenden Antworten wird abgeraten, was wahrscheinlich zu einer Ablehnung geführt hat.
kdb