ruby 1.8.7
Rails 2.2.2
mysql gem 2.7
Linux 2.6.18-92.el5
Hey guys. The MySQL gem is puzzling me. When I run irb> require
'mysql' I get the error shown below:
1. irb(main):001:0> require 'rubygems'
2. => true
3. irb(main):002:0> require 'mysql'
4. LoadError: libmysqlclient.so.16: cannot open shared object file:
No such file or directory - /usr/local/lib/ruby/gems/1.8/gems/
mysql-2.7/lib/mysql.so
5. from /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/
mysql.so
6. from /usr/local/lib/ruby/site_ruby/1.8/rubygems/
custom_require.rb:36:in `require'
7. from (irb):2
It says "no such file or directory" when in fact that file, mysql.so,
absolutely does exist in that exact location.
After some Googling I found that I could use ldconfig to configure
mysql.so to be available to the whole system. Once I added "/usr/local/
mysql/lib" to /etc/ld.so.conf and ran ldconfig, it worked fine:
OK, so I got it to work. But my question is, why was I getting that
error previously? I never had to use ldconfig before to get the mysql
gem to work. Has anyone else encountered the same error? Is there a
better solution?
ruby 1.8.7
Rails 2.2.2
mysql gem 2.7
Linux 2.6.18-92.el5
Hey guys. The MySQL gem is puzzling me. When I run irb> require
'mysql' I get the error shown below:
1. irb(main):001:0> require 'rubygems'
2. => true
3. irb(main):002:0> require 'mysql'
4. LoadError: libmysqlclient.so.16: cannot open shared object file:
No such file or directory - /usr/local/lib/ruby/gems/1.8/gems/
mysql-2.7/lib/mysql.so
5. from /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/
mysql.so
6. from /usr/local/lib/ruby/site_ruby/1.8/rubygems/
custom_require.rb:36:in `require'
7. from (irb):2
It says "no such file or directory" when in fact that file, mysql.so,
absolutely does exist in that exact location.
It's not telling you that mysql.so was not found. It's saying that
while loading that it tried to load libmysqlclient but failed to find
that (because ldconfig hadn't been told to look in the right place)
After some Googling I found that I could use ldconfig to configure
mysql.so to be available to the whole system. Once I added "/usr/
local/
mysql/lib" to /etc/ld.so.conf and ran ldconfig, it worked fine:
OK, so I got it to work. But my question is, why was I getting that
error previously? I never had to use ldconfig before to get the mysql
gem to work. Has anyone else encountered the same error? Is there a
better solution?
You wouldn't need to do this if the mysql libraries were installed in
somewhere like /usr/lib or /usr/local/lib which was already on the
search path