AIO uitschakelen
Dit loste het voor mij op toen ik de AIO-fout kreeg, zoals jij deed toen ik een container startte vanuit een gast Debian OS vanuit Virtualbox en de databasebestanden aanmaakte in een gedeelde map op Windows 10.
Het probleem lijkt te zijn dat AIO niet wordt ondersteund op gedeelde mappen, of in ieder geval op sommige versies van Windows. Het lijkt bij mij te zijn opgetreden nadat ik van Windows 10 Pro naar Home was verhuisd nadat mijn hoofdcomputer was gecrasht.
Voor details:
Hier zijn enkele opties:
Optie 1 - start de container als volgt:
docker run -it mysql --innodb_use_native_aio=0
Optie 2 - voeg de opdracht toe aan je docker-compose-bestand:
command: --innodb_use_native_aio=0
In context, dit is het relevante deel van mijn werkende 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
Optie 3 -- voeg een optie toe aan je my.cnf-bestand in je build
innodb_use_native_aio=0
Optie 4 - Bewaar uw DB niet op het lokale bestandssysteem. (Kan uw db vernietigen, niet aanbevolen)
Verwijder eenvoudig het volume in uw docker-configuratie dat uw mysql db bevat. Natuurlijk wordt je DB verwijderd als je een docker-compose uitvoert of je container op een andere manier vernietigt, dus dat is het.