0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

socket の位置について

Posted at

一日かけてmysql socketの問題に当たり続けたので備忘録として書きます(rails初学者用)
間違っていたらご指摘を本当にお願いします。

development環境 socketの標準場所

/tmp/mysql.socket

production環境 socketの標準場所

/var/lib/mysql/mysql.sock

確認方法は以下コマンドから(各環境にて)

$ mysql -u root -p
(mysqlのパスワード要)
mysql> show variables like '%sock%';

上記ソケットを通してmysqlにアクセスしてます。
sockファイルは自動生成されるので、自分で作る必要はありません。

Can't connect to local MySQL server through socket '/tmp/mysql.sock'(2)
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2)

上記のようなエラーが出た場合、SQLファイルがないということですが、自分で作るより前にMysqlのrestartを試しましょう。
解決するか、後ろの()の数字が変わった別のエラーになります。権限エラーの38、アクセス拒否の111など。
筆者はvimで空の mysql.sock を作ったのですが、「こいつは偽物や!消してくれ!」というエラーをいただきました。
作り方や権限の問題かもしれませんが、自分では作らない方が良いかと。

なお、sockファイルの場所については my.cnfというmysqlの設定ファイルで変更できます

$ sudo vim /etc/my.cnf

でもまずは・・・

エラーのコードよりもなぜ起きたのかを考えましょう。
筆者が一番捕まったのは、
production(のつもり)rails → development環境だと判断
development環境なのでsocketの位置が違う
ということでした。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?