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

何かが原因で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の情報が中途半端に残っていたため、権限不足となっていたみたいです。
これ以前に何回もコンテナを作って削除して、を繰り返して試行錯誤していたため、その時の残骸でしょう...