Forum: Ruby on Rails MySQL gem 2.7 not finding mysql.so

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Jarrod M. (Guest)
on 2008-12-04 21:27
(Received via mailing list)
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:

   1. irb(main):002:0> require 'rubygems'
   2. => true
   3. irb(main):003:0> require 'mysql'
   4. => true

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?

This is how I installed the mysql gem:

   1. gem install mysql --no-rdoc --no-ri \
   2.   -- --with-mysql-include=/usr/local/mysql/include \
   3.   --with-mysql-lib=/usr/local/mysql/lib \
   4.   --with-mysql-config=/usr/local/mysql/bin/mysql_config

Any insight would be greatly appreciated.

Thanks,

E
Frederick C. (Guest)
on 2008-12-04 21:45
(Received via mailing list)
On 4 Dec 2008, at 19:26, ebdb <removed_email_address@domain.invalid> wrote:

>   2. => true
> 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)
> 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

Fred
This topic is locked and can not be replied to.