Деактивирайте AIO
Това го поправи за мен, когато получих грешката в AIO, както направихте, когато стартирах контейнер от гост Debian OS от Virtualbox и създавах файловете на базата данни в споделена папка на Windows 10.
Проблемът изглежда е, че AIO не се поддържа в споделени папки или поне в някои версии на Windows. Изглежда, че се случи при мен, след като преминах от Windows 10 Pro към Home, след като основната ми машина се срина.
За подробности:
Ето някои опции:
Вариант 1 – стартирайте контейнера по следния начин:
docker run -it mysql --innodb_use_native_aio=0
Опция 2 – добавете командата към вашия файл docker-compose:
command: --innodb_use_native_aio=0
В контекста това е съответната част от моя работещ 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
Опция 3 – добавете опция към вашия my.cnf файл във вашата компилация
innodb_use_native_aio=0
Вариант 4 – Не съхранявайте вашата DB в локалната файлова система. (Може да унищожи вашата db, не се препоръчва)
Просто премахнете тома във вашата конфигурация на docker, който съдържа вашия mysql db. Разбира се, вашата DB ще бъде изтрита, ако направите docker-compose down или по друг начин унищожите контейнера си, така че това е така.