rails server fails to start with mysql2 using rvm & ruby 1.9.2-p0 on OSX 10.6.5
The problem comes from the mysql2 gem missing the dynamic library from MySQL.
A cleaner solution than install_name_tool ...
would need to update your DYLD_LIBRARY_PATH
to add MySQL libs to it. To do so, update your ~/.bash_profile
to add the MySQL library folder :
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
Note: You might want to update the MySQL location based on your install
This should keep things clean but also ensure that any gem or code requiring MySQL dynamic libraries will find them.
Reference : http://lightyearsoftware.com/2011/02/mysql-5-5-on-mac-os-x/
Reference Update July 2012: A change in OS X 10.8 makes the easy method above less elegant. If you set that variable, every time you run a setuid or setgid program, you get this warning on stderr:
dyld: DYLD_ environment variables being ignored because main executable (...) is setuid or setgid
Ruby developers using Phusion Passenger Standalone will see this message displayed in their console every five seconds. It gets really irritating, very fast.
I have filed a bug with Apple. It’s also at OpenRadar.
In the meantime, there is also a third way to fix the client library path problem that doesn’t require setting DYLD_LIBRARY_PATH (working around this 10.8 issue) or hacking .bundle files with install_name_tool:
$ brew install mysql
I found the answer here: Mysql 5.5, Snow leopard and rails
sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle