A few years ago we started writing scripts that help install MySQL on OS X. In OS X 10.6 and prior, MySQL was included with the “Server” version of the OS. With the move to Server.app, Apple removed MySQL. Which coincidentally is not long after Oracle acquired Sun which included MySQL. MySQL had a GUI installer for OS X that worked well, but was missing a few things that made it ready to work with Apache/PHP out of the box. Our installer took care of those items as well as set the root password randomly. The default install has root enabled without a password. We took the installer one step forward by adding features for installing a modified MySQL configuration file, and Sequel Pro (a GUI front end for MySQL). Then Yosemite was released recently and our installer had a few issues.
The upgrade to Yosemite did spring cleaning to OS X. There were long outstanding bugs that were resolved and deprecated commands/functions that were finally removed. MySQL had been using a StartupItem configuration to allow an end user to easily set MySQL to start on boot. This setup has been out of date since the OS X 10.4 days. Yosemite will not autostart via a StartupItem. You can easily write a Launchd plist file to auto-start MySQL, but the nice MySQL preference pane that allows a user to turn MySQL off and on again would not function. There is a supporting script from MySQL that handles the start/stop/status functions for the preference pane. What we did in our latest installer is created a Launchd plist that looks for networking to start up, and when ready, use the MySQL support script to start MySQL. This allows MySQL to start on boot, and still retains all use of the MySQL Preference pane.
We also specifically set the MySQL installer to not even attempt to install the Startup Items. Our latest version also should fix the ‘pid could not be found/error not running’ error that some people experienced in the past! (Edit: maybe not every pid error scenario)
To install MySQL copy and paste this into Terminal (Be sure to read the READ ME first):
bash <(curl -Ls http://git.io/eUx7rg)
The great thing about hosting our scripts on github, is that others can easily follow our development and provide input or code that we may merge into our codebase. Star/Watch our Mac-Scripts repo and be sure to let us know of any issues or requests on Github!