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?

Dcokerの異常停止による、chown: changing ownership of '/var/lib/mysql/mysql.sock': No such file or directoryの対応

0
Last updated at Posted at 2026-05-08

DockerでMariaDBが立ち上がらない時に mysql.sock エラーを解決した話

DockerでRails + MariaDB環境を構築していた際、DBコンテナが何度も再起動してしまい、正常に立ち上がらない問題に遭遇しました。

今回は、Dockerを異常終了した後からDBが起動しなくなったケースです。

ログを確認すると、下記のようなエラーが出力されていました。

~/code/heroku/exercise-api: [dev]$: 
->> docker logs 04970f9cca4a

2026-05-06 03:34:50+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.2.2+maria~ubu2404 started.
chown: changing ownership of '/var/lib/mysql/mysql.sock': No such file or directory

2026-05-06 03:47:24+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.2.2+maria~ubu2404 started.
chown: changing ownership of '/var/lib/mysql/mysql.sock': No such file or directory

2026-05-06 03:51:04+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.2.2+maria~ubu2404 started.
chown: changing ownership of '/var/lib/mysql/mysql.sock': No such file or directory

原因

原因は docker-compose.yml の volume マウント設定でした。

私の環境では、下記のようにホスト側の .data/mysql を MariaDB コンテナの /var/lib/mysql にマウントしていました。

volumes:
  - ./.data/mysql:/var/lib/mysql

Dockerを異常終了したことにより、mysql.sock や MariaDB の内部ファイル状態が壊れてしまい、次回起動時に正常初期化できなくなっていました。

その結果、

mysql.sock: No such file or directory

というエラーが発生していました。


解決方法

結論としては、volume マウントしているディレクトリーを削除することで解決しました。

rm -rf .data

これを削除した後、dockerを停止させ、imagesも削除しコンテナを再作成します。

docker compose up -d

すると、MariaDB が正常に起動するようになりました。


なぜこれで直るのか?

MariaDB コンテナは、初回起動時に /var/lib/mysql 配下へデータベースファイルや mysql.sock を生成します。

しかし、ホスト側ディレクトリをマウントしている場合、

  • Docker異常終了によるファイル破損
  • 壊れた socket ファイル
  • 古いDBデータ
  • 権限不整合
  • root所有ファイル

などが残っていると、MariaDB の初期化処理が失敗することがあります。

特に今回のような、

chown: changing ownership of '/var/lib/mysql/mysql.sock'

系のエラーは、volume マウント先の状態異常が原因であるケースが多いです。


DBデータを永続化したい場合

volume マウント自体が悪いわけではありません。

もし永続化したい場合は、一度 .data/mysql を削除してから再作成すると改善する場合があります。

rm -rf ./.data/mysql
mkdir -p ./.data/mysql

その後、再度コンテナを起動します。

docker compose up

まとめ

MariaDB コンテナが起動しない時は、まずログを見ることが重要です。

今回のように、

mysql.sock: No such file or directory

が出ている場合は、Docker異常終了による volume データ破損や、/var/lib/mysql の volume マウントを疑ってみるとよいです。

今回の解決策

  • docker-compose.yml の volume マウントを削除
  • もしくは .data/mysql を削除して再生成

Docker + MariaDB 環境で同じ問題に遭遇した方の参考になれば幸いです。

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?