Here is the complete process to get mysql server working (mysql5 in my case):
# install server and the launch script # needed to start it. (I like the -v option # to see what is happening.) # $ sudo port -v install mysql5 +server # initialize the setup as mysql user. # $ sudo -u mysql mysql_install_db5 # start mysql and set your root password. # $ sudo -u mysql /opt/local/lib/mysql5/bin/mysqld_safe & $ sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password '[new_passwd]'
Now it would be nice if this all started on bootup instead of the last command above. Here are the steps to include it in the automated launchd configuration:
# Create the launchd directory. # $ sudo mkdir -p /Library/StartupItems/LaunchDaemons # Now create a launch plist file: # $ sudo vim /Library/StartupItems/LaunchDaemons/org.mysql.launchd.mysql.plist # Here is the XML you need to put into the plist file: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.mysql.launchd.mysql</string> <key>ProgramArguments</key> <array> <string>/usr/local/mysql-max-5.0.24-osx10.4-i686/bin/mysqld_safe</string> </array> <key>KeepAlive</key> <true/> <key>SuccessfulExit</key> <true/> <key>RunAtLoad</key> <true/> <UserName> <string>_mysql</string> <GroupName> <string>_mysql</string> </dict> </plist> # Finally, need to load this into launchd or you can just # reboot to have it picked up automatically. # $ sudo launchctl launchd% load /System/Library/LaunchDaemons/org.mysql.launchd.mysql.plist launchd% exit
I would also like to point to VelociPeek where Eric (another software man in the Eric club!) details more in this area.
It's not right for everyone, but for many MAMP (http://www.mamp.info/en/mamp.html) will be a lot easier.
ReplyDeleteShouldn't the path to mysqld_safe be the same as the path that you use the first you start it up (manually)? /opt/... ?
ReplyDeletenot sure the details on plist specifications but the UserName and GroupName keys should be specified as keys:
ReplyDeleteand since your comment box doesn't allow tags I can't show you