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

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

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

4
Dla mnie katalog instalacyjny autorstwa homebrew to/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

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


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

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


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.


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


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ć


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


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


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,


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

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


1

Na OSX Snow Leopard

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

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

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.


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 / |


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.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.