Ich habe einen MBA Mitte 2013 mit OSX 10.9.
Der Prozess, der bei jedem Start beginnt, ist mysqld
. Ich glaube, es war von einer alten Version von MySQL, die ich installiert hatte (über AMPPS ). Ich habe dann MAMP Pro installiert und habe häufig Konflikte zwischen diesen beiden Prozessen. Jedes Mal, wenn ich meinen Mac herunterfahre und neu starte, muss ich feststellen, dass der Prozess ausgeführt mysqld
wird (auf dem Aktivitätsmonitor), ihn beenden und dann MAMP starten (über den Terminalbefehl: /Application/MAMP/bin/startMysql.sh
funktioniert nirgendwo anders).
Ich frage mich also, wie ich verhindern kann, dass dies mysqld
bei jedem Start ausgeführt wird.
ps
den übergeordneten Prozess verfolgen und sehen, was gerade beginntmysqld
?Antworten:
Öffnen Sie das Terminal und dann:
Wobei "xxx.xxx" in der Ausgabe des ersten Befehls enthalten ist, zum Beispiel "org.macports.mysql". Das Passwort für den Befehl "sudo" ist das Passwort Ihres eigenen Benutzerkontos.
Zwar wird sudo nicht zum "Auflisten" benötigt, aber da Sie bereits ein sudo-Passwort für den ersten Befehl angegeben haben, wird es für kurze Zeit im Sitzungsspeicher gespeichert und für den zweiten Befehl (der privilegiert ist) nicht benötigt. Andernfalls überspringen Sie einfach sudo beim ersten Befehl und verwenden Sie es beim zweiten. Es gibt mehrere Möglichkeiten, eine Katze zu häuten.
quelle
sudo launchctl list | grep -i mysql
ergibt kein Ergebnis. Auchsudo launchctl list | grep -i mysqld
i.imgur.com/WZ5EVjw.pngWenn die zuvor installierte Version von MySQL von der MySQL Community Downloads-Seite auf der SUN / Oracle-Site stammt, ist dies wahrscheinlich
launchd
nicht mit dem Start desmysqld
Prozesses verbunden. Aus irgendeinem Grund verwendet das mit MySQL verteilte Startskript die veraltete Technologie "Startelemente" , um Prozesse beim Booten zu starten. Tatsächlich verwendet sogar die aktuelle Binärdistribution (5.6.15) vonmysqld
StartupItems, um den Server unter OS X zu starten (?!)Das Startskript, mit dem die widersprüchliche Version von MySQL gestartet wird, befindet sich höchstwahrscheinlich unter
/Library/StartupItems/MYSQLCOM/MYSQLCOM
. Beim Start überprüft dieses/etc/hostconfig
Startelement die Datei um, um festzustellen, ob die Einstellung für die Variable "MYSQLCOM" auf "-YES-" gesetzt ist. In diesem Fall wird das Startskript gestartetmysqld
.Es sollte möglich sein , den Start von MySQL zu deaktivieren , indem Sie die Zeile in der Modifizierung ,
/etc/hostconfig
die angibt ,MYSQLCOM=-YES-
zu sagenMYSQLCOM=-NO-
(was den Startvorgang beim nächsten Systemstart deaktivieren soll).Sie können die aktuell ausgeführte Instanz von beenden,
mysqld
indem Sie den folgenden Befehl ausführen:Um den Start des falschen
mysqld
Prozesses dauerhaft zu deaktivieren , sollte es möglich sein, den Dämon zuerst mit dem obigen Befehl zu stoppen und dann das MySQL-Startelement mit dem folgenden Befehl zu entfernen:Hinweis: Möglicherweise ist auch das MySQL-Einstellungsfenster unter
/Library/PreferencePanes/MySQL.prefpane
oder~/Library/PreferencePanes/MySQL.prefpane
... installiert. Dieses Einstellungsfenster kann auch entfernt werden, um Teile der alten MySQL-Installation zu bereinigen.quelle
sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop
geben Sie auch nichts: i.imgur.com/ukHtW5x.pngFolgendes funktionierte für mich mit MySQL,
8.0.12
das mit Homebrew installiert wurdemacOS Mojave 10.14.1
:quelle
Es ist möglicherweise einfacher, mysqld umzubenennen (oder es zu verschieben / zu sichern / zu löschen) und dann neu zu starten und nach der Fehlermeldung für das Startelement zu suchen, das versucht hat, das nicht mehr verfügbare Programm zu starten.
Die anderen Antworten scheinen die Suche nach Startagenten und Startdämonen sowie die Verfolgung der PID abzudecken, die für Dämonen im Allgemeinen nicht funktioniert, da sie normalerweise eine übergeordnete PID von 1 haben.
Da MySQL nicht mit Mavericks ausgeliefert wird, sollten Sie in der Lage sein, das ausgewählte Installationspaket zu verfolgen oder
mdfind mysqld
das Paket zu finden, das diese Datenbank auf Ihren Mac gebracht hat, und dann die Anweisungen zum Deinstallieren / Deaktivieren für dieses Paket von MySQL zu finden. Sie sollten auch die Systemeinstellungen überprüfen, falls Sie dort ein Steuerelement zum Starten der Software installiert haben.quelle
mdfind mysqld
zeigt keine AMPPS-bezogenen MySQL-Dateien an, nur MAMP-bezogene Dateien (und einige andere von MySQL-Programmen, die ich wie MySQL Workbench installiert habe)Beginnen Sie damit, herauszufinden, welcher übergeordnete Prozess Ihre MySQL gestartet hat. Führen Sie im Terminal einen
ps
Befehl aus, um herauszufinden, was der Prozess ist. Sie können die übergeordnete ID verwenden-j
oder-l
auflistenppid
. Das zeigt Ihnen also:Die erste Spalte ist Ihre Benutzer-ID, die zweite ist die Prozess-ID, die dritte ist die übergeordnete ID.
Wenn die übergeordnete ID 1 ist, wurde sie vom Root-Startdämon gestartet, was wahrscheinlich bedeutet, dass sie von einem der LaunchDaemons oder StartupItems stammt. Wenn es sich um einen Prozess handelt, der nicht 1 ist, sondern ein gestarteter Prozess, dann sind dies wahrscheinlich die LaunchAgents oder befinden sich in Ihren Systemanmeldeelementen.
Prozess 1 wird also beim Systemstart gestartet, und alles, was den übergeordneten Prozess 1 enthält, stammt von den Systemdämonen. Alles (in diesem Fall) mit einem übergeordneten Prozess von 257 wird von einem der LaunchAgents oder LoginItems gestartet.
Beachten Sie, dass der Name des Startdämons oder des Startelements nicht unbedingt "mysql" im Titel enthält - er könnte von einem anderen Programm oder Anmeldeelement ausgeführt worden sein (wenn Sie ihn also nur nach Namen suchen, wird er möglicherweise nicht gefunden). . Sobald Sie herausgefunden haben, was es gestartet hat, können Sie möglicherweise herausfinden, woher es stammt.
quelle