Autostart MySQL Server on Mac OS X Yosemite/El Capitan
I would like to auto start the MySQL server on startup. This was possible in Mavericks but seems to be not working on Yosemite.
edit: seems this works with El Capitan as well
Solution 1:
@dcc was very close. This is how MySQL autostarts again on Yosemite:
The com.mysql.mysql.plist
in /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>
Additionally I've changed the permissions based on this answer
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Finally I run this command
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
If you have any addition please share below!
Solution 2:
I followed @Xavers directions and upon trying to execute the command
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
was given the error:
/Library/LaunchDaemons/com.mysql.mysql.plist: Invalid property list
After scratching my head for a minute I found that removing the DOCTYPE DTD declaration at the top made the error go away and upon restart mySQL server is, indeed, running.
So, my XML looks like this:
<?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>