Wie stoppen Sie MySQL bei einer Mac OS-Installation?


187

Ich habe MySQL über MacPorts installiert . Was ist der Befehl, den ich brauche, um den Server zu stoppen (ich muss testen, wie sich meine Anwendung verhält, wenn MySQL tot ist)?

Antworten:


376

Es gibt verschiedene Fälle, je nachdem, ob Sie MySQL mit dem offiziellen Binärinstallationsprogramm, mit MacPorts oder mit Homebrew installiert haben :

Homebrew

brew services start mysql
brew services stop mysql
brew services restart mysql

MacPorts

sudo port load mysql57-server
sudo port unload mysql57-server

Hinweis: Dies bleibt nach einem Neustart bestehen.

Binärinstallationsprogramm

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Vielen Dank - ich hatte die Stopp- und Startbefehle, wusste aber nichts über einen Neustart. Nach Verwendung des Befehls stop würde start nichts tun, ebenso wie das Starten in den MySQL-Systemeinstellungen.
Ross Henderson

4
In meinem Fall war es etwas anders, weil die MySQL-Versionsnummer in der Plist-Datei hinzugefügt wurde. Es war so: sudo launchctl entlade -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl lade -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk

1
Und für mich /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry

10
Und für Homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas

2
Wenn Sie Homebrew Services installiert haben, können Sie brew services stop mysqlund verwenden brew services start mysql. (Auch restartund rundas beginnt nur für die aktuelle Sitzung.)
Medmunds

138

Für diejenigen, die MySQL mit Homebrew installiert haben, verwenden Sie die folgenden Befehle, um MySQL zu starten, zu stoppen oder neu zu starten

Braustart

/usr/local/bin/mysql.server start

Brew Neustart

/usr/local/bin/mysql.server restart

Braustopp

/usr/local/bin/mysql.server stop

4
Für mich ist das Installationsverzeichnis von Homebrew/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

Sie können jederzeit den Befehl "mysqladmin shutdown" verwenden.


1
Die obigen Befehle haben bei mir nicht funktioniert. Dieser tat es. Ich bin mir nicht sicher, was der Unterschied in meinem Setup ist, aber danke.
Marco

2
Auch wenn es möglicherweise funktioniert, wenn Sie MacPorts verwenden und dies ausführen, merkt launchctl nicht, dass mysql gestoppt wurde, und beschwert sich, wenn Sie versuchen, es zu starten (Laden). Die Verwendung von launchctl ist daher vorzuziehen.
Lambshaanxy

1
Auch wenn dies zum Herunterfahren des Servers funktioniert, hilft es Ihnen nicht, ihn wieder hochzufahren, wenn Sie ihn neu starten möchten.
aroth

3
Denken Sie daran, -p hinzuzufügen und Ihr MySQL-Root-Passwort einzugeben, wenn Sie dazu aufgefordert werden. Bei meinem Setup, bei dem MySQL mit MacPorts installiert ist, wurde MySQL neu gestartet und die Konfiguration neu geladen, die das Ziel meiner Aktion war.
Jesper Grann Laursen

sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownWenn Ihr MySQL von MacPorts kommt
Alain Tiemblo

51

Wenn Sie verwenden homebrew, können Sie verwenden

brew services restart mysql
brew services start mysql
brew services stop mysql

für eine Liste der verfügbaren Dienste

brew services list

2
Dies funktionierte bei mir, auch nach direkter Interaktion mit launchctl nicht. Danke dir!
Lyndsy Simon

18

sudo /usr/local/mysql/support-files/mysql.server stop


2
+1 Dies war nur eine, die für mich funktioniert hat --- Ich habe gerade das DMG-Installationsprogramm von MySQL verwendet. Vielen Dank
Dolan Antenucci

15

sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

Sie können hier auch Start und Neustart verwenden. Ich habe dies anhand des Inhalts von /Library/LaunchDaemons/org.macports.mysql.plist gefunden.


1
So sollten Sie es machen. Für MacPorts. Die launchctlMethode funktioniert NICHT und kann tatsächlich Probleme mit dem PID / DB-Start verursachen.
Alex Gray


10

Versuchen

sudo <path to mysql>/support-files/mysql.server start
sudo <path to mysql>/support-files/mysql.server stop

Sonst versuchen:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop<br>
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Ich stellte jedoch fest, dass die zweite Option nur funktionierte (OS X 10.6, MySQL 5.1.50), wenn die .plist geladen wurde mit:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PS: Ich habe auch festgestellt, dass ich die .plist entladen musste, um eine unabhängige Installation von MAMP- MySQL zu erhalten , damit ich richtig starten / stoppen kann. Nachdem Sie dies ausgeführt haben, startet MAMP-MySQL einwandfrei:

sudo launchctl entlade -w /Library/LaunchDaemons/com.mysql.mysqld.plist


7

Auf meinem Mac OSX Yosemite 10.10. Dieser Befehl hat funktioniert:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist

Sie finden Ihre MySQL-Datei im Ordner / Library / LaunchDaemons /, um sie auszuführen


2
Dies ist nur der Weg, der für mich funktioniert hat. Bei allen anderen Methoden wird der mysqldProzess sofort nach dem Stoppen neu gestartet.
Rockallite

Dies ist der einzige Weg, der auch für mich funktioniert hat. Ich habe von Homebrew auf das von MySQL bereitgestellte DMG umgestellt und glaube, dass die Brew-Version möglicherweise noch lief, obwohl ich sie deinstalliert habe.
Sam Critchley

5

Verwenden:

sudo mysqladmin shutdown --user=*user* --password=*password*

Man könnte wahrscheinlich davonkommen, wenn man kein Sudo benutzt . Der Benutzer kann beispielsweise root sein (dh der MySQL-root-Benutzer).


4

Wenn alles andere fehlschlägt, können Sie einfach den rücksichtslosen Ansatz wählen und den Prozess beenden, in dem MySQL manuell ausgeführt wird.

Das ist,

ps -Af

Um alle Prozesse aufzulisten , führen Sie " kill <pid>" aus, wobei <pid>die Prozess-ID des MySQL-Daemons (mysqld) angegeben ist.


Ja, dies ist das beste und universellste Skript. Glauben Sie, dass die Möglichkeit einer Datenkorruption besteht? oder andere Probleme?
user425720

1
Dies kann zu Datenkorruption führen.
Dan Sandland

Aber als letzte Anstrengung ist dies ausreichend.
Dan Sandland


2

Für mich funktioniert es mit einem "mysql5"

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

2

In meinem Fall wurde der Neustart fortgesetzt, sobald ich den Prozess mit PID beendet hatte. Auch der brew stopBefehl funktionierte nicht, da ich ihn ohne Homebrew installiert habe. Dann ging ich zu den Mac-Systemeinstellungen und wir haben dort MySQL installiert. Öffnen Sie es einfach und stoppen Sie den MySQL-Server und Sie sind fertig. Hier im Screenshot finden Sie MySQL unten in den Systemeinstellungen.Geben Sie hier die Bildbeschreibung ein


1

Auf OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist

0

Ich habe mysql5 und mysql55 über Macports installiert. Für mich befinden sich die hier genannten Dateien an folgenden Stellen:

(mysql55-server) /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

(mysql5) /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist

Halten Sie also für diese Arbeiten an:

mysql55-server:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

mysql5:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 

Sie können überprüfen, ob der Dienst noch ausgeführt wird mit:

ps ax | grep mysql

Weiter können Sie die Protokolldateien in meinem Fall hier überprüfen:

mysql55-server

sudo tail -n 100 /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.err
...
130213 08:56:41 mysqld_safe mysqld from pid file /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.pid ended

mysql5:

sudo tail -n 100 /opt/local/var/db/mysql5/<MyName>-MacBook-Pro.local.err
...
130213 09:23:57  mysqld ended

0

Wenn Sie das MySQL 5-Paket mit MacPorts installiert haben:

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql.plist 

Oder

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist 

wenn Sie das mysql5-develPaket installiert haben .


1
Dies verhindert, dass es beim Neustart gestartet wird, was auf dem Poster nicht gefordert wurde.
Matthew Schinckel

0

mysql> zeige Variablen, bei denen Variablenname wie '% dir%' ist;

| datadir | / opt / local / var / db / mysql5 / |


0

Nachdem Sie alle diese Befehlszeilen ausprobiert haben und es nicht funktioniert. Ich muss folgende Dinge tun:

mv /usr/local/Cellar/mysql/5.7.16/bin/mysqld /usr/local/Cellar/mysql/5.7.16/bin/mysqld.bak
mysql.server stop

Auf diese Weise funktioniert der mysqld-Prozess. Aber das /var/log/system.log hat viel Müll:

Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql[78049]): Service exited with abnormal code: 1
Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.