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 is to use
install_name_tool to update the (extremely) relative
libmysqlclient.16.dylib reference to be absolute (usually to
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 of
/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
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.