Feb 19 2011

MySQL, Ruby on Rails, and Mac OS X

Published by mark at 6:41 pm under programming

A year ago, it was a bit of a pain to setup Ruby on Rails & MySQL on Windows Vista for the Foundations class at Carnegie Mellon. Download & install Ruby, download & install Rails, download & install MySQL, and spend some time finding a mysql.dll override to get it all to work.

A year later, with my first MacBook Pro that ships with Ruby and Rails 2, I thought setting up RoR dev environment would be just installing MySQL.

Ha! I was wrong…

Installing MySQL 5.5 64-bit was a no brainer.

gem update –system; no problems there.

gem install mysql; ooops… this is where it fell apart.

Full mysql gem install: sudo env ARCHFLAGS=”-arch x86_64″ gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config

It resulted in something like the following:

Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

Some attempts later, I ended up with this:

uninitialized constant MysqlCompat::MysqlRes

Turns out rails & gem still don’t work well with MySQL 5.5. (note: updating mysql2.bundle with the libmysqlclient library path might work…)

So time to uninstall MySQL 5.5. Hmm… how? Found this set of instructions.

  • Use mysqldump to backup your databases to text files!
  • Stop the database server
  • sudo rm /usr/local/mysql
  • sudo rm -rf /usr/local/mysql*
  • sudo rm -rf /Library/StartupItems/MySQLCOM
  • sudo rm -rf /Library/PreferencePanes/My*
  • edit /etc/hostconfig and remove the line MYSQLCOM=-YES-
  • rm -rf ~/Library/PreferencePanes/My*
  • sudo rm -rf /Library/Receipts/mysql*
  • sudo rm -rf /Library/Receipts/MySQL*

However, the MySQL 5.1 installer complained that a newer version of MySQL is already installed. One more piece of MySQL to clean up.

  • sudo rm -rf /var/db/receipts/com.mysql.*

That got MySQL 5.1 installed. MySQL gem installed and compiled (requires Xcode).

It worked! How about that?

Coming up next, Rails 3 on MySQL 5.5. Hopefully not another year later…

One Response to “MySQL, Ruby on Rails, and Mac OS X”

  1. Michael Maitlenon 25 Mar 2011 at 9:57 am

    I’ve also been through the pain of setting up MySQL on a Mac for developing RoR apps, twice…the last time I had the option I decided to simply use the default SQLite db for my latest Rails 3 app and because I’m using Heroku to host my app I’ll have a PostgreSQL db during production. Not sure if your projects could benefit from simplifying this way, depends on your requirements…

    BTW, thanks for your post on StackOverflow, http://is.gd/u3otX8, it helped me get past a problem I was having.

    Cheers!

Trackback URI | Comments RSS

Leave a Reply