Jak zatrzymać MySQL w instalacji Mac OS?

187

Zainstalowałem MySQL przez MacPorts . Jakiego polecenia potrzebuję, aby zatrzymać serwer (muszę sprawdzić, jak zachowuje się moja aplikacja, gdy MySQL nie działa)?

Laurie Young
źródło

Odpowiedzi:

377

Istnieją różne przypadki w zależności od tego, czy zainstalowałeś MySQL z oficjalnym instalatorem binarnym, używając MacPorts czy Homebrew :

Homebrew

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

MacPorts

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

Uwaga: jest to trwałe po ponownym uruchomieniu.

Instalator binarny

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
mloughran
źródło
Wielkie dzięki - miałem polecenia stop i start, ale nie wiedziałem / nie pomyślałem o próbie ponownego uruchomienia. Po użyciu polecenia stop, start nie zrobiłby nic, podobnie jak w panelu Preferencji systemowych MySQL.
Ross Henderson
4
W moim przypadku było nieco inaczej, ponieważ numer wersji mysql został dodany w pliku plist. Tak to wyglądało: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w
/Library/LaunchDaemons/org.macports.mysql5.plist
1
I dla mnie /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky
10
I dla homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas
2
Jeśli masz zainstalowane usługi Homebrew , możesz używać brew services stop mysqli brew services start mysql. (Również restart, i runktóry rozpoczyna się tylko dla bieżącej sesji.)
medmunds
138

Dla tych, którzy użyli homebrew do zainstalowania MySQL, użyj poniższych poleceń, aby uruchomić, zatrzymać lub ponownie uruchomić MySQL

Rozpocznij parzenie

/usr/local/bin/mysql.server start

Ponowne uruchomienie zaparzania

/usr/local/bin/mysql.server restart

Zatrzymaj zaparzanie

/usr/local/bin/mysql.server stop
pjammer
źródło
4
Dla mnie katalog instalacyjny autorstwa homebrew to/usr/local/Cellar/[email protected]/5.7.23/bin/
Moobie
68

Zawsze możesz użyć polecenia „mysqladmin shutdown”

Rimantas
źródło
1
Powyższe polecenia nie działały dla mnie. Ten zrobił. Nie jestem pewien, jaka jest różnica w mojej konfiguracji, ale dzięki.
Marco,
2
Nawet jeśli może to działać, jeśli używasz MacPorts i uruchamiasz to, launchctl nie zauważy, że mysql został zatrzymany i narzeka, jeśli spróbujesz go uruchomić (załadować). Preferowane jest zatem użycie launchctl.
lambshaanxy
1
Ponadto, chociaż działa to na zamknięcie serwera, nie zrobi nic, aby pomóc Ci przywrócić go, gdy chcesz go ponownie uruchomić.
aroth
3
Pamiętaj, aby dodać -p i wprowadzić hasło root mysql po wyświetleniu monitu. Przy mojej instalacji, w której mysql jest zainstalowany z MacPorts, mysql zrestartował się i ponownie załadował konfigurację, która była celem mojej akcji.
Jesper Grann Laursen
sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownjeśli twój mysql pochodzi z MacPorts
Alain Tiemblo
51

Jeśli używasz homebrew, możesz użyć

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

na listę dostępnych usług

brew services list
Jan
źródło
2
To działało dla mnie, nawet po bezpośredniej interakcji z launchctl nie. Dziękuję Ci!
Lyndsy Simon
19

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

Moesio
źródło
2
+1, to był tylko jeden, który działał dla mnie --- Właśnie użyłem instalatora DMG z MySQL. Dzięki
Dolan Antenucci,
15

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

Możesz także użyć opcji Start i restartuj tutaj. Znalazłem to, patrząc na zawartość /Library/LaunchDaemons/org.macports.mysql.plist.

Katy Lavallee
źródło
1
W ten sposób powinieneś to zrobić ... W przypadku MacPorts .. launchctlMetoda NIE działa, aw rzeczywistości może powodować problemy ze syczeniem i jęczeniem przy uruchamianiu PID / DB.
Alex Gray
11

Próbować

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

W przeciwnym razie spróbuj:

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

Stwierdziłem jednak, że druga opcja działała (OS X 10.6, MySQL 5.1.50), jeśli .plist został załadowany:

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

PS: Odkryłem również, że muszę zwolnić .plist, aby uzyskać niepowiązaną instalację MAMP -MySQL zacząć poprawnie / stop. Po uruchomieniu tego MAMP-MySQL zaczyna się dobrze:

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

zack
źródło
7

Na moim Mac OSX Yosemite 10.10. To polecenie działało:

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

Możesz znaleźć plik mysql w folderze / Library / LaunchDaemons /, aby uruchomić

Duc Chi
źródło
2
To jedyny sposób, który zadziałał dla mnie. W przypadku innych metod mysqldproces uruchamia się ponownie natychmiast po zatrzymaniu.
Rockallite,
To jedyny sposób, który zadziałał również dla mnie. Zmieniłem z homebrew na DMG dostarczany przez MySQL i myślę, że prawdopodobnie wersja Brew nadal działała, mimo że ją odinstalowałem.
Sam Critchley,
5

Posługiwać się:

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

Prawdopodobnie można byłoby uniknąć używania sudo . Użytkownika mogą być na przykład korzenie (czyli MySQL root).

Steve
źródło
4

Cóż, jeśli wszystko inne zawiedzie, możesz po prostu zastosować bezwzględne podejście i ręcznie zabić proces uruchamiania MySQL.

To jest,

ps -Af

aby wyświetlić listę wszystkich procesów, wykonaj „ kill <pid>” gdzie <pid>jest identyfikator procesu demona MySQL (mysqld).

John Montgomery
źródło
tak .. ten jest najlepszy i uniwersalny dla skryptów. Czy uważasz, że istnieje możliwość uszkodzenia danych? lub jakieś inne problemy?
user425720,
1
Może to spowodować uszkodzenie danych.
Dan Sandland,
Ale jako ostatni wysiłek, jest to wystarczające.
Dan Sandland,
4

Najnowszy OSX (10.8) i mysql 5.6, plik znajduje się w obszarze Uruchamianie demonów i jest com.oracle.oss.mysql.mysqld.plist. Przedstawia opcję w obszarze Opcje systemu, zwykle na dole listy. Przejdź do ustawień systemowych, kliknij Mysql i wyłącz go z pola opcji. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
źródło
2

Dla mnie działa z „mysql5”

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Wszystko jest jednym
źródło
2

W moim przypadku kontynuowano restart, gdy tylko zabiłem proces za pomocą PID. Również brew stoppolecenie nie działało, gdy zainstalowałem bez użycia homebrew. Potem poszedłem do preferencji systemu Mac i mamy tam zainstalowany MySQL. Wystarczy go otworzyć i zatrzymać serwer MySQL i gotowe. Tutaj na zrzucie ekranu możesz znaleźć MySQL w dolnej części preferencji systemowych.wprowadź opis zdjęcia tutaj

jokerster
źródło
1

Na OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
sweetfa
źródło
0

Zainstalowałem mysql5 i mysql55 na Macports. Dla mnie wymienione pliki znajdują się w następujących miejscach:

(serwer mysql55) /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

Zatrzymanie się na te prace wygląda następująco:

serwer mysql55:

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 

Możesz sprawdzić, czy usługa nadal działa z:

ps ax | grep mysql

Ponadto możesz sprawdzić pliki dziennika w moim przypadku tutaj:

serwer mysql55

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
źródło
0

Jeśli zainstalowałeś pakiet MySQL 5 z MacPorts:

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

Lub

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

jeśli zainstalowałeś mysql5-develpakiet.

Bartosz Blimke
źródło
1
Zapobiegnie to uruchomieniu się po ponownym uruchomieniu komputera, o co nie prosił plakat.
Matthew Schinckel,
0

mysql> pokaż zmienne, w których nazwa_zmiennej, np. „% dir%”;

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

Jack Peng
źródło
0

Po wypróbowaniu wszystkich wiersza poleceń i to nie działa. Muszę wykonać następujące czynności:

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

W ten sposób działa, proces mysqld zniknął. ale /var/log/system.log ma wiele śmieci:

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.
człowiek z brązu
źródło