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)?

Laurie Young
quelle

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
mloughran
quelle
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
pjammer
quelle
4
Für mich ist das Installationsverzeichnis von Homebrew/usr/local/Cellar/[email protected]/5.7.23/bin/
Moobie
68

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

Rimantas
quelle
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
Jan.
quelle
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

Moesio
quelle
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.

katy lavallee
quelle
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

Zack
quelle
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

Duc Chi
quelle
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).

Steve
quelle
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.

John Montgomery
quelle
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
4

Neueste OSX (10.8) und MySQL 5.6, die Datei befindet sich unter Launch Daemons und ist com.oracle.oss.mysql.mysqld.plist. Es wird eine Option unter Systemoptionen angezeigt, normalerweise am Ende der Liste. Gehen Sie also zu den Systemeinstellungen, klicken Sie auf MySQL und deaktivieren Sie es im Optionsfeld. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
quelle
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
Alles ist eins
quelle
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

Jokerster
quelle
1

Auf OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
sweetfa
quelle
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
Manuel_B
quelle
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 .

Bartosz Blimke
quelle
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 / |

Jack Peng
quelle
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.
Bronzemann
quelle