Homenbrew mySQL automatisch starten

Hat man MySQL unter OS X mittels Homebrew installiert, benutzt aber nicht den eigenen User, sondern “admin”, so funktionieren die in von der Formula ausgegebenen Hinweise zum automatischen Start nicht.

Automatischen Start konfigurieren

Damit MySQL beim Systemstart hochgefahren wird, muss das plist-File nicht in ~/Library/LaunchAgents, sondern in /Library/LaunchDaemons verlinkt werden, da LaunchAgents nur beim Login eines Users gestartet werden.

$ sudo ln -sfv /usr/local/opt/mysql/homebrew.mxcl.mysql.plist /Library/LaunchDaemons

Nun noch die Rechte korrigieren:

$ sudo chown root:wheel /usr/local/opt/mysql/homebrew.mxcl.mysql.plist

Da MySQL beim Systemstart von “root” gestartet wird, muss der User “admin” explizit in der MySQL-Konfiguration /etc/my.cnf gesetzt werden:

[mysqld]
user=admin

Soll MySQL ohne Reboot gestartet werden, erfolgt dies mit folgendem Kommando:

$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

Bei anderen Datenbanken wie Postgres oder MongoDB kann man übrigens genauso vorgehen.

Mögliche Fehler

Vergisst man, die Rechte auf root:wheel zu korrigieren, erhält man beim Starten von MySQL folgende Fehlermeldung:

$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
/usr/local/Cellar/mysql/5.7.10/homebrew.mxcl.mysql.plist: Path had bad ownership/permissions

Wichtig ist auch, MySQL mittels sudo als “root” zu starten, da sonst folgender Fehler auftritt:

$ launchctl load /Library/LaunchDaemons/homebrew.mxcl.mysql.plist 
Could not find domain for