mysql2 ruby gem and Mac OS X: image not found

If you are using the mysql2 ruby gem on Mac OS X you may have run into this problem before.

> require ‘mysql2’
LoadError: dlopen(mysql2-0.2.7/lib/mysql2/mysql2.bundle, 9):
Library not loaded: libmysqlclient.16.dylib
Referenced from: mysql2-0.2.7/lib/mysql2/mysql2.bundle
Reason: image not found – mysql2-0.2.7/lib/mysql2/mysql2.bundle

So far the only [solution I have found online](http://freddyandersen.wordpress.com/2010/10/03/mysql-5-5-snow-leopard-and-rails/) is to use [`install_name_tool`](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/install_name_tool.1.html) to update the (extremely) relative `libmysqlclient.16.dylib` reference to be absolute (usually to `/usr/local/mysql/lib/libmysqlclient.16.dylib`).

While this solves the problem, it only works until you reinstall the mysql2 gem or install a newer version and then you have to do it again. To permanently solve it you need to create a [symlink](http://en.wikipedia.org/wiki/Symbolic_link) of `libmysqlclient.16.dylib` to `/usr/lib` so that it can be found with that default relative path.

Ideally you wouldn’t put it in `/usr/lib` but I haven’t be able to find a path inside of ruby that will let you load the `dylib`.

sudo ln -s /usr/local/mysql/lib/libmysqlclient.16.dylib /usr/lib

Enter your password and then you can use the `mysql2` gem without needing to edit the compiled bundle afterwards.