Wyłącz AIO
To naprawiło to dla mnie, gdy pojawił się błąd AIO, tak jak podczas uruchamiania kontenera z systemu gościa Debiana z Virtualbox i tworzenia plików bazy danych w folderze współdzielonym w systemie Windows 10.
Problem wydaje się polegać na tym, że AIO nie jest obsługiwane w folderach współdzielonych, a przynajmniej w niektórych wersjach systemu Windows. Wygląda na to, że zdarzyło mi się to po tym, jak przeniosłem się z systemu Windows 10 Pro do Home po awarii mojego głównego komputera.
Szczegóły:
Oto kilka opcji:
Opcja 1 – uruchom kontener w ten sposób:
docker run -it mysql --innodb_use_native_aio=0
Opcja 2 – dodaj polecenie do pliku docker-compose:
Polecenie command: --innodb_use_native_aio=0
W kontekście jest to odpowiednia część mojego roboczego pliku docker-compose.yml:
services:
db:
image: ${MYSQL_IMAGE}
command: "--innodb_use_native_aio=0"
volumes:
- ${DB_DATA_PATH}:/var/lib/mysql
ports:
- ${MYSQL_PORT}:3306
Opcja 3 – dodaj opcję do pliku my.cnf w swojej kompilacji
innodb_use_native_aio=0
Opcja 4 — Nie utrwalaj bazy danych w lokalnym systemie plików.(Może zniszczyć bazę danych, niezalecane)
Po prostu usuń wolumin w konfiguracji dockera, który zawiera bazę danych mysql. Oczywiście twoja baza danych zostanie usunięta, jeśli wykonasz docker-compose down lub w inny sposób zniszczysz swój kontener, więc jest to.