These are instructions for compiling and installing a 64-bit version of MySQL, the world’s most popular open source database, on Mac OS X 10.6 (Snow Leopard).
The benefits of manually building MySQL yourself in /usr/local are detailed here. I also wrote a in-depth explanation of why you might want to build MySQL yourself in my Compiling MySQL on Leopard article.
No Support
These instructions will probably work just fine and you won’t run into any trouble, but if you do, please don’t email me about it. I wish I could help everybody who might have an issue, but I just don’t have the time to help you troubleshoot hundreds of potential variables with your specific configuration, and I probably won’t even reply to the email, and I’m sorry in advance for that.
Prerequisites
Before following these instructions, you will need:
- Mac OS X 10.6 Snow Leopard
- The latest Xcode Tools (from the Snow Leopard DVD or downloaded from Apple — the 10.5 version won’t work)
- Confidence running UNIX commands using the Terminal
If you want to learn more about UNIX and the command line, check out my PeepCode screencast on this topic.
Step 1: Set the PATH
Launch Terminal.app from the /Applications/Utilities folder.
We need to set your shell’s PATH variable first. The PATH variable determines where your system searches for command-line programs. Using the editor of your choice, create and edit a file in your home directory named .profile (note the “.” preceding the filename).
If you’re using TextMate like you should be and have installed the UNIX mate command, then you can create and start editing the file like this:
mate ~/.profile
To the end of this file, add the following line (or verify that it’s already there):
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
Close and save the file and run this command to load the new setting into your current shell:
source ~/.profile
To verify that you’ve updated your path, enter the following command:
echo $PATH
You should see /usr/local/bin at the beginning of the line returned by the system.
Step 2: Download
We’re going to create a folder to contain the files we’re about to download and compile. If you want, you can delete this folder when you’re done, but keeping it around makes it easier to re-install (or uninstall) these apps later.
Make the new folder:
mkdir ~/src cd ~/src
I used to provide a link to download the latest version of MySQL, but they update frequently and sometimes the links die, so instead, please go to the MySQL site, and download the latest version from this page, picking a mirror near you. Then move or copy it to your src folder.
For those of you who expect the world, you can try this command, but please don’t email me if it’s broken:
curl -O http://mysql.mirrors.pair.com/Downloads/MySQL-5.1/mysql-5.1.39.tar.gz
Step 3: Compile and Install
Build and install MySQL like this:
tar xzvf mysql-5.1.37.tar.gz cd mysql-5.1.37 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex \ --enable-thread-safe-client --enable-local-infile --enable-shared \ --with-plugins=innobase make sudo make install cd /usr/local/mysql sudo ./bin/mysql_install_db --user=mysql sudo chown -R mysql ./var cd ..
Starting (and Auto-Starting) MySQL
In most cases, you’ll want MySQL to auto-start every time you boot (or reboot) your Mac. The easiest way to do this is using launchd, Mac OS X’s infrastructure for managing system processes.
I’ve prepared a launchd plist file that will allow you to manage MySQL, starting it at boot and stopping it cleanly at shutdown. Save the plist file to your ~/src directory and then move it to the proper place with the following commands:
cd ~/src curl -O http://hivelogic.com/downloads/com.mysql.mysqld.plist sudo mv ~/src/com.mysql.mysqld.plist /Library/LaunchDaemons sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
Finally, tell launchd to load and startup MySQL:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
If you see no response, it probably means that everything worked correctly, and that MySQL is running. You can verify this by launching MySQL’s command-line monitor:
mysql -uroot
You should see something like this:
Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 Server version: 5.1.37 Source distribution Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql>
If this prompt appears, MySQL has been installed correctly. Type exit and press return to quit the MySQL monitor.
If you didn’t see that message, it’s possible that something “bad” happened, or that you may have missed a step above. You can always try running through the instructions again.
You now have a custom-built 64-bit version of MySQL.
Starting and Stopping MySQL Manually
If you ever want to stop MySQL manually, use this command:
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist
To (re)start MySQL manually, use this command:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
Extra Credit: The Rails Gem
You can install the Rails MySQL Gem by pointing it at your new MySQL installation direcory:
sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
That should do it.
Commenting is not available in this weblog entry.





