0
1

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 1 year has passed since last update.

【Rails】ローカル環境でmysql.sockがないと言われた

Posted at

解決に割と時間がかかったので備忘録として残します。

状況

Docker環境でRailsを起動した後、ブラウザからocalhost:3000にアクセスすると
Can't connect to local MySQL server through socket '~/mysqld/mysqld.sock' (2)
というエラーが出る。

確認したこと・試したこと

  • コンテナは起動しているか→docker-compose psで確認。動いていた
  • MySQLが動いているか→mysql -u root -pで入れたので正常に動いていそう
  • イメージやボリュームを全削除してコンテナを再度作る→変わらず

いっぱいググってみたがそれっぽい解決方法がなかなか見つからず苦戦。
てかmysql.sockってなんだってのが全然わからず困った。

解決方法

探しに行っている場所にmysql.sockがないようなので、
とりあえずそのファイルが今どこにあるか探そうという方針で調べるキーワードを変えてみた。

結果、1つの記事に出会って解決しました。

  1. mysql_config --socket コマンドを使いmysql.sockの場所を特定する
  2. database.ymlにmysql.sockのある場所を指定する
default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  port: <%= ENV.fetch("DATABASE_PORT") {3306} %>
  username: <%= ENV.fetch("MYSQL_USERNAME", "root") %>
  password: <%= ENV["MYSQL_ROOT_PASSWORD"] %>
  host: db
  socket: /tmp/mysql.sock

エラー文をしっかり読むことに加えて、何が問われているかを冷静になって考えなきゃなぁと反省です。

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?