vagrant上のdockerのMySQLコンテナの起動に失敗するときの対処法
問題
windows10のvagrant上にdockerのmysqlコンテナを作り、さらにVagrantfile
のconfig.vm.synced_folder
で指定したフォルダーをdocker-compose.yml
のvolumesでマウントしてMySQLのデータを永続化しようとした。
しかし、docker ps
で確認したところ、mysqlコンテナは起動に失敗していて、再起動を繰り返していた。docker logs
でログを見ると、以下のようなエラーが繰り返し出ていた。
2021-02-28T08:22:44.596272Z 0 [ERROR] InnoDB: File ./ib_logfile0: 'aio write' returned OS error 122. Cannot continue operation 2021-02-28T08:22:44.596276Z 0 [ERROR] InnoDB: Cannot continue operation.
エラーメッセージで検索したところ、docker-compos.yml
にcommand: --innodb_use_native_aio=0
を追加するとよいとの情報が複数見つかった。
しかし、上記オプションを追加してvagrant up
からやり直しても、状況は変わらなかった。
解決法
先ほどのオプションを追記した後、docker-compose.yml
内で/var/lib/mysql
のマウント元に指定しているホストのフォルダーの中身を空にしたのち、dockerのビルドをする。