LoginSignup
2
0

More than 3 years have passed since last update.

docker-compose upでDBが立ち上がらないときにやったこと

Last updated at Posted at 2020-08-08

dockerで環境構築をし、サーバーを起動しようとdocker-compose upをすると
Mysql2::Error::ConnectionError: Unknown MySQL server host 'db' (-2)というエラーが出てしまう。

ターミナルにて、エラーログを確認すると
image.png
何かが原因でDBがシャットダウンしてしまっている模様。

privilege tablesなのでsudoで作成するユーザのテーブル?
なぜdockerでこの内容のエラーが出る?
と色々疑問に思ったが、とりあえず一度全てのvolumeを削除してみることに。

解決策

①volumeのIDを調べる

$ docker volume ls
DRIVER              VOLUME NAME
local               b1d0c8467782387a61c446e1ea2aedaa745d6f120c4c6423bdc37e9005a7bd34

②上記で調べたVOLUME NAMEを用い、rmコマンドにてvolumeを削除

$ docker volume rm [VOLUME NAME]
# 例↓
$ docker volume rm b1d0c8467782387a61c446e1ea2aedaa745d6f120c4c6423bdc37e9005a7bd34

docker-compose.ymlを元に、コンテナ&サーバー再起動

$ docker-compose up --build
$ docker-compose run web rails db:create
$ docker-compose run web rails db:migrate

④localhost:3000にアクセス
無事エラーなく起動

原因

mysqlのテーブル情報が保存される場所がvolumeなのでコンテナを削除した際にvolumeコンテナを削除しきれておらず、前回のmysqlの情報が中途半端に残っていたため、権限不足となっていたみたいです。

これ以前に何回もコンテナを作って削除して、を繰り返して試行錯誤していたため、その時の残骸でしょう...

参考にした記事

docker-compose up で db が立ち上がらない時は volume を削除してみる

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