LoginSignup
3
3

More than 5 years have passed since last update.

RailsでMySQL serverでsocketのerrorが出た時

Last updated at Posted at 2016-03-03

僕の場合は、Mac上のdevelopment環境で、複数DB serverを立ち上げて、Railsから複数DBに接続しようとした場合に発生したのですが、
Railsでdatabaseとのconnecing時に、
Can't connect to local MySQL server through socket
のようなsocket fileに関連するErrorが発生しました。

例えばCan't connect to local MySQL server through socket '/tmp/mysql.sock1'というErrorが発生したとき,Railsは/tmp/mysql.sock1に接続しにいこうとしたけど,接続できなかったということです。

my.cnfで指定したsocket fileをrailsで指定してるのになと思ってたのですが、Error messageから推察するに、mysqlのsocketがRailsで指定した/tmp/mysql.sock1ではない可能性が高いです。

なので、mysqlのsocketがまずどこにあるか調べてみます。

sudo mysqladmin -p version

と打つと、mysql serverに関する情報が表示されます。

mysqladmin  Ver 8.42 Distrib 5.6.26, for osx10.10 on x86_64
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version      5.6.26
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /tmp/mysql.sock
Uptime:         12 hours 7 min 9 sec

UNIX socketの部分を見ると、mysql serverのsocket fileがpathがわかります。

なので、database.ymlの中身を
socket: /tmp/mysql.sockと指定し直してあげると
workします。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3