Ampelofilosofies

homeaboutrss
The mind is like a parachute. If it doesn't open, you're meat.

mySQL on Snow Leopard

13 Nov 2009

It was inevitable that rutema would one day have to use a different database than sqlite3.

To do that I needed a testbed therefore I chose mySQL.

This is a “forget-me-not” for the way to a local mySQL installation on Snow Leopard.

Instead of going with the prepackaged .dmg I chose to install mySQL using MacPorts. This was pretty straightforward and went without a hitch.

The mysql executables end up in /opt/local/bin, and they are all suffixed with a ‘5’. The actual binaries are all under /opt/local/lib/mysql5/ (no suffix there).

After compilation succeeds you need to do the following:

  • Create the system tables
sudo /opt/local/bin/mysql_install_db5 --user=_mysql
  • Start the server
sudo /opt/local/bin/mysqld_safe5 --user=_mysql &
The _mysql user is already present on Mac OS X 10.6  * Change the root user password
/opt/local/bin/mysqladmin5 -u root password 'pass'

In order to setup privileges, you enter the mysql command shell as root(

/opt/local/bin/mysql5 -u root -p

) and setup your database and users. The rutema setup looks something like

create database rutema;
create user rutema;
grant all on rutema.* to rutema;
set password for rutema = password('pass');

The current activerecord gem does not include the pure ruby mysql code anymore and requires the C based mysql gem. This is a bit tricky to install as it needs to compile as 64-bit to work with the Apple standard Ruby installation.

sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-dir=/opt/local/lib/mysql5 --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config

should do the trick though.