Fix for running MySQL 5.5.8 under MacOS X 10.6.5 (Snow Leopard)
Oracle recently released the latest MySQL 5.5.x versions. Despite of having tones of fixes and supposedly running much faster and (finally) making InnoDB the default storage engine, it is always good to keep up to date with latest releases.
But, as in the past, MaxOS X users always have to battle with getting it run correctly on their platform of choice. With this release it is no difference. This time, we are hit by permission issues and wrong path settings that prohibits MySQL to start at all and also to make it automatically startup during boot time.
After installing the preference pane, you should be able to simply click the button to start/stop the MySQL server. Point is that “it should”, but it wont. This is due to a wrong path setting in the startup file. In order to make it work you have to edit a file. Jump into your favorites tool (no, it is not iTunes), but the Terminal application and enter:
(Nano is a editor in your shell, you can also use “vi” or “emacs”, but I guess “nano” is easy to use)
Then hit “ctrl + W” (for search) and enter “basedir=”, then hit Enter”. This will search for the string entered. Once found, change it to:
Once changed, hit “ctrl + W” again and search for “mysqld_pid_file_path=$datadir/`hostname`.pid” and change it to:
After these two changes simply press “ctrl + X” and enter “y” and then enter. This will save the changes you just made and will close the editor.
During reboot you might have seen the error message:
“Insecure Startup Item disabled. /Library/StartupItems/MySQLCOM has not been started because it does not have the proper security settings.”
This is because the StartUpItem has been installed with the improper permission settings. This can simply be solved with the following commands you have to enter in the terminal:
chown -R root:wheel /Library/StartupItems/MySQLCOM
That’s it. After next reboot the MySQL server will startup as expected and you will also be able to start/stop the server from the preference panel.