🔖
mysqld: File './binlog.index' not found エラーが表示されたときに試して欲しいこと
概要
以下のエラーが表示され、MySQLのコンテナが立ち上がらなくなりました。
mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)
エラーについて調べてみると、権限についての記事がたくさん出てきました。
権限について何も操作しておらず他のプロジェクトでは問題なかったのになぁ...と。
ですが、他のプロジェクトでも確認したところ同じようにMySQLのコンテナが立ち上がらなくなっていました。
確認するとエラーの内容が異なっており、容量が足りないというエラーが出ていました。
[ERROR] InnoDB: Write to file ./ibdata1failed at offset 0, 1048576 bytes should have been written. Operating system error number 28. Check that your OS and file system support files of this size. Check also that the a disk quota exceeded.
容量を空けるとエラーが解決した
解決方法としては容量のエラーを解決すると、先ほどのエラーが表示されなくなりMySQLのコンテナが立ち上がるようになりました。
容量を空ける方法
まず、dockerデーモンによって利用されているディスク総容量に関する情報を表示して確認します。
dockerデーモンとはコンテナを管理するために常駐するプロセスで、呼び出された Docker Engine API に応じて、イメージのビルドやコンテナの起動などを行います。
docker system df
確認するとImages、Local Volumes、Build Cacheの容量がいっぱいだったので、それぞれ削除します。
Imagesの削除
-a(–all)オプションを追加して、コンテナに関連付けられていないイメージを全て削除します。
docker image prune -a
Local Volumeの削除
コンテナから参照されていないボリュームを削除します。
docker volume rm $(docker volume ls -qf dangling=true)
Build Cacheの削除
docker builder prune
容量の確認
もう一度確認すると、先ほどはいっぱいだった容量が空いています。
docker system df
MySQLのコンテナが立ち上がるようになりました!
終わりに
何かありましたらお気軽にコメント等いただけると助かります。
ここまでお読みいただきありがとうございます🎉
Discussion