Install mysql-ruby on RHEL


#1

Howdy,

I’ve successfully installed ruby-rails-mysql on my powerbook, on our
Windows server, but am missing something on our Linux box.

Ruby is installed (1.8.4), so is rails (0.8.11). And I got the
“Congratulations, you put Ruby on Rails!” screen. I have MySQL
already installed (it’s been there for a long time), version 4.0.25).

Now, I need to install the driver for MySQL/Ruby (mysql-ruby-2.7).
Here’s how the progression goes:

[richard@www mysql-ruby-2.7]$ ruby ./extconf.rb --with-mysql-dir=/usr
checking for mysql_query() in -lmysqlclient… yes
checking for mysql_ssl_set()… yes
checking for mysql.h… no
checking for mysql/mysql.h… yes
creating Makefile

[richard@www mysql-ruby-2.7]$ make
gcc -fPIC -g -O2 -I. -I/usr/local/lib/ruby/1.8/i686-linux -I/usr/
local/lib/ruby/1.8/i686-linux -I. -DHAVE_MYSQL_SSL_SET -
DHAVE_MYSQL_MYSQL_H -I/usr/include -c mysql.c
gcc -shared -L’/usr/lib’ -Wl,-R’/usr/lib’ -L’/usr/local/lib’ -Wl,-R’/
usr/local/lib’ -o mysql.so mysql.o -lmysqlclient -ldl -lcrypt -lm
-lc

[richard@www mysql-ruby-2.7]$ ruby ./test.rb localhost root
test
./test.rb:143: undefined method `client_version’ for Mysql:Class
(NoMethodError)

BTW, I created an empty database called test.

Anyone had a similar experience? Any ideas?

Cheers,
Richard


#2

Hi,

I just packaged mysql-ruby for Fedora Core and in my SPEC file I use

ruby extconf.rb --with-mysql-config

This does the trick for me on Fedora Core 4. And I guess it would also
do the trick on a RHEL server. At least it does so for me using RHEL 3.

Kind regards,
Oliver


#3

Thanks, Oliver.

I don’t have a mysql_config, not sure why. But, I noticed it wasn’t
finding the header file (mysql.h), so I ran this:

[richard@www mysql-ruby-2.7]$ make clean
[richard@www mysql-ruby-2.7]$ ruby ./extconf.rb --with-mysql-dir=/usr
–with-mysql-include=/usr/include/mysql
checking for mysql_query() in -lmysqlclient… yes
checking for mysql_ssl_set()… yes
checking for mysql.h… yes
creating Makefile

This time if found it.

[richard@www mysql-ruby-2.7]$ make
gcc -fPIC -g -O2 -I. -I/usr/local/lib/ruby/1.8/i686-linux -I/usr/
local/lib/ruby/1.8/i686-linux -I. -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H
-I/usr/include/mysql -I/usr/include -c mysql.c
gcc -shared -L’/usr/lib’ -Wl,-R’/usr/lib’ -L’/usr/local/lib’ -Wl,-R’/
usr/local/lib’ -o mysql.so mysql.o -lmysqlclient -ldl -lcrypt -lm
-lc
[richard@www mysql-ruby-2.7]$ ruby ./test.rb localhost root ertgnhbr
./test.rb:143: undefined method `client_version’ for Mysql:Class
(NoMethodError)

Same error.

Could my compiler be the problem?

gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-53)

Thanks,
Richard


#4

I don’t know what is wrong in your case. However, in my case, I
wanted a newer version of MySQL than came with RHEL (RHEL4 has MySQL
v4 - I wanted v5), so I installed a new MySQL from sources into /usr/
local).

Then I did ‘gem install mysql – --with-mysql-dir=/usr/local’, and
everything built fine.


#5

Hi,

I just checked on my RHEL boxes, and even your method to compile the
module works fine there. What version of MySQL are you using and from
which source did you take it? Official MySQL rpm files from mysql.com?
Self-compiled?

The first strange thing in my eyes is, that mysql_config is not there.
Every rpm I know of installs it in /usr/bin as part of the basic MySQL
package. ANd the second strange thing is the error while running your
test code.

[richard@www mysql-ruby-2.7]$ ruby ./test.rb localhost root ertgnhbr
./test.rb:143: undefined method `client_version’ for Mysql:Class
(NoMethodError)

I don’t think that the compiler is the source of your problems. Can you
supply the MySQL version and from where you have taken it? Or where it
is installed?

Regards,
Oliver


#6

On Feb 4, 2006, at 2:04 PM, Richard Navarrete wrote:

have a mysql_config?
/usr/lib/libmysqlclient.so.12
/usr/share/mysql

I just checked on my RHEL boxes, and even your method to compile the
test code.

Regards,
Oliver


Oliver A. — removed_email_address@domain.invalid — http://roughbook.de/

Speaking totally out of my rear end here, but it looks like A) its
installed from an rpm (judging by the directories its installed to)
and B) you need to install the -devel version of the rpm. Of course I
could be completely wrong since its been a long time since A) I’ve
used Linux and B) I almost always use Debian.


#7

Hey Oliver,

I’m using 4.0.25 and I think it’s self compiled or came installed
already. Unfortunately, I can’t remember if I installed it by hand,
but for sure it wasn’t using RPMs, because I don’t see such tracings
in /usr/src/redhat…

I’m still checking to see how MySQL got there. heh

So, I assume by your comment that all mysql installations should have
a mysql_config?

Here are a few mysql files/folders I found on my system:

/usr/bin/safe_mysqld
/usr/bin/mysql …mysqldump, etc
/usr/include/mysql/libmysqlclient.so
/usr/include/mysql/libmysqlclient.so.10
/usr/include/mysql
/usr/lib/libmysqlclient.so
/usr/lib/libmysqlclient.so.10
/usr/lib/libmysqlclient.so.12
/usr/lib/libmysqlclient_r.so
/usr/lib/libmysqlclient_r.so.10
/usr/lib/libmysqlclient_r.so.12
/usr/lib/mysql
/usr/lib/libmysqlclient.so.10.0.0
/usr/lib/libmysqlclient.so.12.0.0
/usr/lib/libmysqlclient_r.so.10.0.0
/usr/lib/libmysqlclient_r.so.12.0.0

/usr/sbin/mysqld
/usr/share/mysql

I’ll see if I can find out how it was installed…

Thanks,
Richard


#8

Good call, Logan.

[richard@www richard]$ rpm -qa | grep -i mysql
MySQL-shared-compat-4.0.25-0
mysql-devel-3.23.58-16.RHEL3.1
php-mysql-4.3.2-26.ent
MySQL-server-4.0.25-0
MySQL-client-4.0.25-0

I guess I’ll grab the mysql-devel-4.0.25 (if there is such and try to
install it). Although I’m not sure why mysql_config isn’t there.

I’ll let you know how it goes.

Thanks!
R


#9

On Feb 5, 2006, at 12:07 AM, Richard Navarrete wrote:

Although I’m not sure why mysql_config isn’t there.

Well, mysql_config should only be there after installing the devel
version, since if it does what I think it does, is show the include
dir and lib dir for mysql. There wouldn’t be any include dirs without
the devel package, so even it was installed, it wouldn’t help. At
least I think that’s what is going on.


#10

That’s right, in Debian you need mysqlclient-dev (or whatever was the
name of the package) to compile ruby-mysql.


#11

Success! I spent most of the weekend and today coming back from a
long road.

I went ahead and upgraded from mysql 4.0 to 4.1… I was missing
mysql-devel for starters (as we discussed in this thread).

I ran into lots of issues all of which are unrelated to this forum,
but in the end… having mysql-devel (4.1.16 in my case) and possibly
getting rid of bad glibc libraries, made the installation of mysql-
ruby a breeze.

I used --with-mysql-config… which I had now and it found everything
it needed.

Thank you all for your help!
Richard