I've spent literally a week trying to get MySQL to work with Ruby On Rails. After much hair pulling, screaming, and crying I finally figured it out. Much of this article is based on the following command:

sudo gem install mysql -- - with-mysql-config=/usr/local/mysql/bin/mysql_config

Install Directories Aren't All The Same

Contrary to the many articles out there, mysql doesn't necessarily install to the same path every time. The most common location for it to be installed to is /usr/local/mysql/. Don't take this as gospel when you see it splashed around the Intarwebs. In fact, your install location could well be /opt/local/var/db/mysql5/ depending on the version. To find out where your mysql version is simply run "location mysql_config" and it should narrow your search results. If it's the first time you've run location then the terminal will give you command required to install it. So, first of all, locate the correct mysql location.

Gem Install

Running sudo gem install mysql doesn't necessarily do what you want it to do. There's no real way of checking until you specify --with-mysql-config as a parameter option to the gem install. This will fall over and give you some error such as "can't connect to local MySQL server through socket '/tmp/mysql.sock'". Realistically this doesn't help you. What it really means is that you're probably pointing to the wrong path, so as the previous step mentioned, make sure you find the correct path.

XCode

It's a very good idea to install the version of XCode from the Snow Leopard DVD, otherwise things won't work. Also, Snow Leopard supports 64-bit installs now which is another reason to use it.

Build From Source

Personally I built from source. The last link I have provided shows how to do this. There's many-a-reason to do it, most of all is the flexibility. It will take roughly half an hour to do.

Resources

http://stackoverflow.com/questions/1357997/snow-leopard-ruby-1-9-1-mysql-gem-huge-problems

http://stackoverflow.com/questions/1923265/installing-mysql-and-mysql-gem-on-snow-leopard

http://www.icoretech.org/2009/08/install-mysql-and-mysql-ruby-gem-on-snow-leopard-64-bit/ (read this one first)

Posted: 2010-02-04 20:31:13 UTC

blog comments powered by Disqus