Connection refused(/tmp/mysql.sock)対策
VPSで運用中のUbuntuにおいて
rubyからruby-mysql使ってDBアクセスを試みたらエラーとなった..
$ irb irb(main):001:0> require 'mysql' => true irb(main):002:0> irb(main):003:0* client = Mysql.connect('localhost','ユーザ名','パスワード','DB名') Errno::ECONNREFUSED: Connection refused - "/tmp/mysql.sock"
ちなみに環境としてはこんな感じです.
$ gem list *** LOCAL GEMS *** bigdecimal (1.1.0) io-console (0.3) json (1.5.4) minitest (2.5.1) rake (0.9.2.2) rdoc (3.9.5) ruby-mysql (2.9.10) $ rbenv versions * 1.9.3-p385
原因は割とはっきりしていて"localhost"を指定しているのがまずいらしいです.
なのでちょこっとソースを変更したら直りました.
$ irb irb(main):001:0> irb(main):002:0* irb(main):003:0* require 'mysql' => true irb(main):004:0> client = Mysql.connect('127.0.0.1','ユーザ名','パスワード','DB名') => (略)
まぁ本当はこの辺の接続情報をじかに書くのはよくないと思うので
実際にコーディングしているときには問題にならないと思います.