Mam MBA z połowy 2013 roku z systemem OSX 10.9.
Proces rozpoczyna się przy każdym uruchomieniu mysqld
. Wierzę, że pochodzi ze starej wersji MySQL, którą zainstalowałem (przez AMPPS ). Następnie zainstalowałem MAMP Pro i często mam konflikty między tymi dwoma procesami. Za każdym razem, gdy zamykam i ponownie uruchamiam komputer Mac, muszę znaleźć proces, mysqld
który jest uruchomiony (na monitorze aktywności), zamknąć go, a następnie uruchomić MAMP (za pomocą polecenia terminalu: /Application/MAMP/bin/startMysql.sh
nie będzie działać z innego miejsca).
Zastanawiam się więc, jak mogę wyłączyć to mysqld
uruchamianie przy każdym uruchomieniu.
ps
aby śledzić proces nadrzędny i zobaczyć, co się zaczynamysqld
?Odpowiedzi:
Otwórz terminal, a następnie:
Gdzie „xxx.xxx” znajduje się w danych wyjściowych pierwszego polecenia, na przykład „org.macports.mysql”. Hasło do polecenia „sudo” to hasło do konta użytkownika.
To prawda, że sudo nie jest potrzebne do „listy”, ale ponieważ już dałeś hasło sudo dla pierwszego polecenia, jest ono przechowywane przez krótki czas w pamięci sesji i nie jest wymagane dla drugiego polecenia (które jest uprzywilejowane). W przeciwnym razie po prostu pomiń sudo w pierwszym poleceniu i użyj go w drugim. Jest więcej sposobów na skórowanie kota.
źródło
sudo launchctl list | grep -i mysql
nie daje rezultatu. Ani niesudo launchctl list | grep -i mysqld
i.imgur.com/WZ5EVjw.pngJeśli poprzednio zainstalowana wersja MySQL pochodzi ze strony pobierania społeczności MySQL w witrynie SUN / Oracle, prawdopodobnie
launchd
nie jest związana z uruchomieniem tegomysqld
procesu. Z jakiegoś powodu skrypt startowy dystrybuowany wraz z MySQL używa przestarzałej technologii „Elementy startowe” do uruchamiania procesów podczas rozruchu. W rzeczywistości nawet bieżąca dystrybucja binarna (5.6.15)mysqld
używa StartupItems do uruchomienia serwera w systemie OS X (?!)Skrypt startowy, który uruchamia sprzeczną wersję MySQL, najprawdopodobniej znajduje się w
/Library/StartupItems/MYSQLCOM/MYSQLCOM
. W czasie uruchamiania ten element startowy zbada plik at,/etc/hostconfig
aby ustalić, czy ustawienie zmiennej „MYSQLCOM” jest ustawione na „-TAK-”. Jeśli tak, uruchomi się skrypt startowymysqld
.Powinno być możliwe wyłączenie uruchamiania MySQL poprzez modyfikację wiersza,
/etc/hostconfig
który określa,MYSQLCOM=-YES-
co powiedziećMYSQLCOM=-NO-
(co powinno wyłączyć proces uruchamiania przy następnym uruchomieniu).Możesz zakończyć aktualnie działającą instancję
mysqld
, wykonując polecenie:Aby trwale wyłączyć uruchamianie niewłaściwego
mysqld
procesu, powinno być możliwe zatrzymanie demona za pomocą powyższego polecenia, a następnie usunięcie elementu startowego MySQL za pomocą następującego polecenia:Uwaga: możesz również mieć okienko preferencji MySQL zainstalowane w
/Library/PreferencePanes/MySQL.prefpane
lub~/Library/PreferencePanes/MySQL.prefpane
... Okienko preferencji można również usunąć w celu wyczyszczenia fragmentów starej instalacji MySQL.źródło
sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop
nic nie dają: i.imgur.com/ukHtW5x.pngPoniższe działało dla mnie z mysql
8.0.12
zainstalowanym za pomocą Homebrew wmacOS Mojave 10.14.1
:źródło
Może być łatwiej zmienić nazwę mysqld (lub przenieść / wykonać kopię zapasową / usunąć), a następnie uruchomić ponownie i poszukać komunikatu o błędzie dla elementu uruchamiania, który próbował uruchomić program, który nie jest już dostępny.
Inne odpowiedzi wydają się obejmować podejście do szukania agentów uruchamiania i uruchamiania demonów, a także śledzenia PID, który na ogół nie działa dla demonów, ponieważ zwykle mają one macierzysty PID równy 1.
Ponadto, ponieważ mysql nie jest dostarczany z Mavericks, powinieneś być w stanie śledzić wybrany pakiet instalacyjny lub użyć go
mdfind mysqld
do zlokalizowania pakietu, który przyniósł tę bazę danych na komputer Mac, a następnie zlokalizować instrukcje odinstalowywania / wyłączania dla tego pakietu mysql. Będziesz także chciał sprawdzić preferencje systemowe, jeśli zainstalowałeś tam kontrolkę, aby uruchomić oprogramowanie.źródło
mdfind mysqld
nie pokazuje żadnych plików MySQL związanych z AMPPS, tylko pliki związane z MAMP (i kilka innych z programów MySQL, które zainstalowałem jak MySQL Workbench)Zacznij od dowiedzenia się, jaki jest proces nadrzędny, który uruchomił twój mysql. Z terminalu uruchom
ps
polecenie, aby dowiedzieć się, na czym polega proces; możesz użyć-j
lub,-l
aby wyświetlić identyfikator nadrzędnyppid
. To pokaże ci:Pierwsza kolumna to identyfikator użytkownika, druga to identyfikator procesu, trzecia to identyfikator nadrzędny.
Jeśli nadrzędny identyfikator ma wartość 1, zostanie uruchomiony przez głównego demona uruchamiającego, co prawdopodobnie oznacza, że pochodzi on z jednego z elementów LaunchDaemons lub StartupItems. Jeśli pochodzi z procesu, który nie jest 1, ale jest to proces uruchomiony, to prawdopodobnie jest to LaunchAgents lub jest w systemie elementy logowania.
Tak więc proces 1 jest uruchamiany przy starcie systemu i wszystko, co ma proces macierzysty 1, pochodzi z demonów systemowych. Wszystko (w tym przypadku) z nadrzędnym procesem 257 jest uruchamiane z jednego z LaunchAgents lub LoginItems.
Pamiętaj, że nazwa demona uruchamiającego lub elementu startowego niekoniecznie zawiera w tytule słowo „mysql” - mogło być uruchomione przez inny program lub element logowania (więc po prostu wyszukiwanie go według nazwy może go nie znaleźć) . Po znalezieniu tego, co go uruchomiło, możesz być w stanie dowiedzieć się, skąd on się wziął.
źródło