Inaktivera AIO
Detta fixade det för mig när jag fick AIO-felet som du gjorde när jag startade en behållare från ett gäst Debian OS från Virtualbox och skapade databasfilerna i en delad mapp i Windows 10.
Problemet verkar vara att AIO inte stöds på delade mappar, eller åtminstone på vissa versioner av Windows. Det verkar ha inträffat för mig efter att jag flyttade från Windows 10 Pro till Home efter att min huvudmaskin kraschade.
För mer information:
Här är några alternativ:
Alternativ 1 - starta behållaren så här:
docker run -it mysql --innodb_use_native_aio=0
Alternativ 2 - lägg till kommandot i din docker-compose-fil:
command: --innodb_use_native_aio=0
I sammanhanget är detta den relevanta delen av min fungerande 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
Alternativ 3 -- lägg till ett alternativ i din my.cnf-fil i din build
innodb_use_native_aio=0
Alternativ 4 - Behåll inte din DB på det lokala filsystemet.(Kan förstöra din db, rekommenderas inte)
Ta helt enkelt bort volymen i din docker-konfiguration som innehåller din mysql db. Naturligtvis kommer din DB att raderas om du gör en docker-compose down eller på annat sätt förstör din behållare, så det är det.