Search code examples
mysqlmacososx-yosemitestartuposx-elcapitan

How to auto-load MySQL on startup on OS X Yosemite / El Capitan


After upgrading OS X my install of MySQL stopped loading on startup.

This walk-through on MySQL 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-

I assume OSX dev's added the # This file is going away but I'm not certain.

If that is the case, what is the proper way to start MySQL on startup on OSX Yosemite?


Solution

  • This is what fixed it:

    First, create a new file: /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>
    

    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