Nach dem Upgrade von OS X wurde meine Installation von MySQL beim Start nicht mehr geladen.
Dies Anleitung zu MySQL sagt:
"Bei der Installation von Startup Item wird eine Variable MYSQLCOM = -YES- zur Systemkonfigurationsdatei/etc/hostconfig hinzugefügt. Wenn Sie den automatischen Start von MySQL deaktivieren möchten, ändern Sie diese Variable in MYSQLCOM = -NO-."
Also habe ich diese Datei geöffnet und es heißt:
# This file is going away
AFPSERVER=-NO-
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSERVER=-NO-
MYSQLCOM=-YES-
Ich nehme an, OSX-Entwickler haben das # This file is going away
aber ich bin nicht sicher.
Wenn dies der Fall ist, wie kann MySQL beim Start unter OSX Yosemite ordnungsgemäß gestartet werden?
Das hat es behoben:
Erstellen Sie zunächst eine neue Datei: /Library/LaunchDaemons/com.mysql.mysql.plist
<?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>
Aktualisieren Sie dann die Berechtigungen und fügen Sie sie zu launchctl
hinzu:
Sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Wenn Sie mysql über homebrew installiert haben, können Sie bei der Anmeldung launchd
mysql starten lassen, indem Sie:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Die akzeptierte Antwort funktionierte nicht, um meinen MySQL-Server automatisch zu starten. 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 chown root:wheel com.Oracle.oss.mysql.mysqld.plist
Sudo chmod o-w com.Oracle.oss.mysql.mysqld.plist
Sudo launchctl load -F com.Oracle.oss.mysql.mysqld.plist
Mein Mac läuft auf El Capitan. MySQL wird über Brew installiert.
mysql.server status
sagte mir, dass ich einige Probleme zu lösen hatte:
ERROR! MySQL is not running, but PID file exists
Gefunden homebrew.mxcl.mysql.plist
Datei in /usr/local/Cellar/mysql/x.x.x/
Verzeichnis und kopierte es nach /Library/LaunchDaemons/
Sudo cp homebrew.mxcl.mysql.plist /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Legen Sie alle erforderlichen Berechtigungen fest:
Sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Verwendeter Teil der Ratschläge, beschrieben von Justin
Es gibt ein Bash-Skript von MacMiniVault , das dies für Sie erledigt - und auch MySQL installiert. Es gibt auch einen Artikel , der den Vorgang beschreibt.
In diesem Artikel wird empfohlen, das Skript direkt in Terminal zu leiten und auszuführen. Da dies jedoch schwerwiegende Sicherheitsrisiken mit sich bringt, sollten Sie das Skript herunterladen und überprüfen, bevor Sie es lokal ausführen.
Hinweis: Diese Antwort wurde als Reaktion auf Kommentare zu den Sicherheitsaspekten der Befolgung der Anweisungen in dem oben genannten Artikel überarbeitet. Es ist im Allgemeinen eine schlechte Idee, ein Shell-Skript von einer unbekannten Quelle direkt an bash weiterzuleiten. Wenn Sie das Skript nicht verstehen oder dem Autor nicht vertrauen, sollten Sie es auch nicht verwenden.