From: "とみたまさひろ" Date: 2003-10-16T19:26:22+09:00 Subject: [ruby-list:38585] Re: ruby-mysql-0.2.1でlocalhostがエラー とみたです。 On Thu, 16 Oct 2003 18:38:59 +0900 Takahiro Kambe wrote: > ざっとソースを眺めると"localhost"がホスト名として指定されると、UNIX > domainのソケットを使って接続しようとするようにhard codingされています。 そうです。一応、互換のために、MySQL の C ライブラリの libmysqlclient.c と同じ振る舞いにしてあります。 本当に localhost に TCP 接続したい場合は "127.0.0.1" を指定する必要が あります。 > UNIX domainのソケットのアドレス、すなわちパス名は、 > > - newの引数 > - 環境変数MYSQL_UNIX_PORT > - "/tmp/mysql.sock" > > の順で、最初に指定されたものが使用されるようです。というわけで、実際に > MySQLのサーバが接続を待っているUNIX domainのソケットを、以上のように指 > 定する必要があるのでしょう。 MySQL をソースから普通にコンパイルすると "/tmp/mysql.sock" が使われる ので、それをソースに埋め込んでます。が、Red Hat Linux などでは異なるパ スが使われているようなので、それに対応するためには、mysql.rb の MYSQL_UNIX_ADDR を変更する必要があります。 # 頑張って自動的に検出しようとするのは大変そうなので、ドキュメントに書 # いておくだけにしようかな…。 -- とみたまさひろ