Ich möchte den MySQL-Server beim Start automatisch starten. Dies war bei Mavericks möglich, scheint aber bei Yosemite nicht zu funktionieren.
edit: Das scheint auch mit El Capitan zu funktionieren
@ dcc war sehr nah. So startet MySQL unter Yosemite wieder automatisch:
Das com.mysql.mysql.plist
im /Library/LaunchDaemons
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
Zusätzlich habe ich die Berechtigungen basierend auf diese Antwort geändert
Sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Zum Schluss führe ich diesen Befehl aus
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Wenn Sie eine Ergänzung haben, teilen Sie diese bitte unten mit!
Ich folgte @ revaxarts Richtungen und beim Versuch, den Befehl auszuführen
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
wurde der Fehler gegeben:
/Library/LaunchDaemons/com.mysql.mysql.plist: Ungültige Eigenschaftsliste
Nachdem ich mir eine Minute am Kopf gekratzt hatte, stellte ich fest, dass durch das Entfernen der DOCTYPE-DTD-Deklaration oben der Fehler behoben wurde und beim Neustart von mySQL Server tatsächlich ausgeführt wird.
Mein XML sieht also so aus:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
Wenn Sie mysql mit homebrew installiert haben, können Sie Anweisungen zum automatischen Starten erhalten, indem Sie brew info mysql
.
Die Ausgabe auf meinem Computer lautet beispielsweise:
To have launchd start mysql at login:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Dieser Artikel hilft mir, das Problem mit einem ungültigen Fehler zu beheben. Korrigierter Plist, den ich unten verwendet habe.
Woher weiß ich, welche Zeile der Plist-Datei falsch ist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList- 1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
Erstellen /Library/LaunchDaemons/com.mysql.mysql.plist
und speichere es mit der folgenden Liste:
<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</true>
</dict>
</plist>
Laden Sie dann die neu erstellte plist-Datei
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Keine der anderen Antworten hat zum automatischen Starten meines MySQL-Servers beigetragen. Ich habe die Anweisungen aus dem MySQL 5.6-Handbuch befolgt und es wird endlich wieder automatisch gestartet! Erstelle die Datei /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist
mit folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.Oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--port=3306</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
Führen Sie nach dem Erstellen der Datei die folgenden Befehle aus:
cd /Library/LaunchDaemons
Sudo launchctl load -F com.Oracle.oss.mysql.mysqld.plist
Als ich die in früheren Antworten vorgeschlagene plist verwendet habe, habe ich den Benutzer für mein System auf _mysql geändert, aber die Schaltfläche "Stop MySQL Server" im MySQL-Einstellungsbereich hat nicht mehr funktioniert. Die Taste KeepAlive
bewirkt, dass der Vorgang unmittelbar nach dem Drücken der Stopptaste erneut gestartet wird. Ich habe den Schlüssel RunAtLoad
verwendet, um ihn beim Neustart zu starten, aber die Schaltfläche im Fensterbereich weiterarbeiten zu lassen.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=_mysql</string>
</array>
</dict>
</plist>
Dann, wie in den anderen Antworten, lief:
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Jetzt wird MySQL beim Neustart gestartet, der MySQL-Bereich in den Systemeinstellungen funktioniert jedoch weiterhin. Ich leite El Capitan, 10.11.2