Archive for February, 2011

Feb 19 2011

MySQL, Ruby on Rails, and Mac OS X

Published by mark 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 so far