How to auto-load MySQL on startup on OSX 10.10 (Yosemite)
Problem
After upgrading to OSX Yosemite(10.10), MySQL stopped loading on startup.
The MySQL documentation says:
The Startup Item installation adds a variable MYSQLCOM=-YES- to the system configuration file /etc/hostconfig. If you want to disable the automatic startup of MySQL, change this variable to MYSQLCOM=-NO-.
So, I opened that file and it says:
# This file is going away
AFPSERVER=-NO-
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSERVER=-NO-
MYSQLCOM=-YES-
As OSX mentioned this file is going away.
Solution
You need to create a Property List file (.plist) to start MySQL automatically on system startup.
First, create a new property list file:
sudo vim /Library/LaunchDaemons/com.mysql.mysql.plist
Add the following lines to it:
KeepAlive
Label
com.mysql.mysqld
ProgramArguments
/usr/local/mysql/bin/mysqld_safe
--user=mysql
Then update permissions and add it to launchctl:
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
That’s it. Now the MySQL service will be started on OS X startup.