install mysql-ruby on RHEL

  • Thread starter Richard Navarrete
  • Start date
R

Richard Navarrete

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:

<code>

[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
<myrootpass> test
/test.rb:143: undefined method `client_version' for Mysql:Class
(NoMethodError)

</code>

BTW, I created an empty database called `test`.

Anyone had a similar experience? Any ideas?

Cheers,
Richard
 
O

Oliver Andrich

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
 
R

Richard Navarrete

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
 
D

Derek Chesterfield

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.
 
O

Oliver Andrich

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
 
R

Richard Navarrete

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

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
 
L

Logan Capaldo

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

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

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.
 
M

Meiao

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

Richard Navarrete

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,187
Members
46,730
Latest member
AudryNolan

Latest Threads

Top