Help us understand the problem. What is going on with this article?

Rails with docker-composeで'/tmp/mysql.sock'がねえよと怒られたとき

More than 3 years have passed since last update.

この問題、よくあるみたいなのでメモ。

1. mysql.sockがあるかどうか疑う

mysql.sockについてですが、まれに自動で作成されない場合があるそうです。そのため、dbコンテナ上であらかじめ手動で作成してから再度試してみましょう。

$ sudo touch /var/lib/mysql/mysql.sock
$ sudo chown mysql:mysql /var/lib/mysql/mysql.sock

2. config/database.ymlの設定を疑う

そもそもソケットいらない?

docker-composeを用いてweb用とdb用のコンテナをそれぞれ分けて運用している場合、config/database.ymlhostdbとコンテナを明示する必要があります。(当たり前かもしれない…)

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: password
  host: db

development:
  <<: *default
  database: myapp_development

test:
  <<: *default
  database: myapp_test

passwordの空欄を許可している場合は、passwordの値は空欄で構いません。

musaprg
スニペット類の著作権は「CC0 1.0」です
misw
プログラミング・2D/3DCG・DTM・シナリオ・動画製作等を一手に引き受ける、早稲田大学公認のデジタル創作サークル
https://misw.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away