Hmmm... Is it possible you have more than one version of MySQL installed?
I've got a stock RH7.2 system, MySQL comes with it by default, and the 
socket is in /var/lib/mysql.  Did you download the latest-greatest from
MySQL and compile--install? If so, try running extconf.rb with these options (from the
 README)

    --with-mysql-include-dir=dir
        MySQL header directory. Default is /usr/local/include
 
    --with-mysql-lib-dir=dir
        MySQL library directory. Default is /usr/local/lib                      

Pointed to the active version. 

In  my /usr/include/mysql/mysql_version.h there is:
#define MYSQL_UNIX_ADDR                 "/var/lib/mysql/mysql.sock"

Maybe doing a locate mysql_version.h would be enlightening. 

I'm not absolutely certain mysql-ruby uses these defines, I'd have to 
look in the source code, but it seems a safe bet that since these switches
are there, that the headers are used, including finding where the socket is.

Since it seems yours is not a multi-user system, it doesn't matter where the
socket is located, instead of recompiling MySQL I'd just try to get ruby to
find the socket properly. 

One last thought, I'm not sure if a link to a socket would work, I've never 
tried it, but you might try doing a link from where it is in /tmp to where 
Ruby is looking for it in /var/lib. It's a quick-and-dirty fix, if it works,
you're done, if it doesn't, you haven't wasted much time. 


On Fri, 14 Dec 2001 11:39:29 +0900
"Jack Dempsey" <dempsejn / georgetown.edu> wrote:

> The daemon's definitely running....i of course tested out my normal command
> line connection and that was just fine...and if i ls /tmp i see "mysql.sock"
> I installed it and didn't change anything, so i don't know what could have
> happened...
> i agree its probably bad for security, but this is a dual boot machine
> that's not often up in linux...think i should recompile mysql and reinstall?
> i just don't think it'd change the tmp thing because i certainly didn't tell
> it to run the sockets in tmp.....
> 
> jack
> 
> -----Original Message-----
> From: Daniel P. Zepeda [mailto:daniel / zepeda-zone.net]
> Sent: Thursday, December 13, 2001 9:34 PM
> To: ruby-talk ML
> Subject: [ruby-talk:28477] Re: mysql issues...looking for wrong socket
> 
> 
> On any redhat system (and derivatives like mandrake) that I've ever worked
> on, MySQL creates the socket in /var/lib/mysql, just where Ruby is
> looking. Are you *sure* that you have the MySQL daemon running? Can you
> see the socket "file" in /tmp? If so, your administrator must have changed
> the default installation. From a security standpoint, making the socket in
> /tmp doesn't sound like a good idea.
> 
> In any case, the socket file is defined in the MySQL include files, which
> the ruby module checks, so you shouldn't have to mess with this.
> 
> I'll bet the daemon isn't running...
> 
> 
> On Fri, 14 Dec 2001 09:40:05 +0900
> Jack Dempsey <dempsejn / georgetown.edu> wrote:
> 
> > hi all,
> >
> > i've got ruby 1.6.5 working well on redhat 7.2 and now i'd like to add
> > mysql support...
> > everything seems to work fine...it makes perfectly, but when i run
> > test.rb i get the following error
> >
> > [jack@Zeus mysql-ruby-2.4.1]$ ruby -I. ./test.rb localhost root password
> >
> > connect............../t/00connect.rb:1:in `connect': Can't connect to
> > local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
> > (MysqlError)
> >         from ./t/00connect.rb:1
> >         from ./test.rb:23:in `load'
> >         from ./test.rb:23
> >         from ./test.rb:19:in `each'
> >         from ./test.rb:19
> >
> > mysql normally creates its sockets in /tmp so i can see how looking in
> > /var/lib... would be a problem...is there some way i can tell ruby to
> > look elsewhere, or perhaps recompile with a different option?
> > any help would be much appreciated....
> > thanks!
> > jack dempsey
> >
> 
> 
> --
> Daniel P. Zepeda
> daniel / zepeda-zone.net
> 


-- 
Daniel P. Zepeda
daniel / zepeda-zone.net