Désactiver AIO
Cela m'a corrigé lorsque j'ai eu l'erreur AIO comme vous l'avez fait lorsque je démarrais un conteneur à partir d'un système d'exploitation Debian invité à partir de Virtualbox et que je créais les fichiers de base de données sur un dossier partagé sous Windows 10.
Le problème semble être que AIO n'est pas pris en charge sur les dossiers partagés, ou du moins sur certaines versions de Windows. Cela semble s'être produit pour moi après que je sois passé de Windows 10 Pro à Home après que ma machine principale se soit écrasée.
Pour plus de détails :
Voici quelques options :
Option 1 - démarrez le conteneur comme ceci :
docker run -it mysql --innodb_use_native_aio=0
Option 2 - ajoutez la commande à votre fichier docker-compose :
Commande command: --innodb_use_native_aio=0
Dans le contexte, voici la partie pertinente de mon travail 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
Option 3 -- ajoutez une option à votre fichier my.cnf dans votre build
innodb_use_native_aio=0
Option 4 - Ne conservez pas votre base de données sur le système de fichiers local. (Peut détruire votre base de données, non recommandé)
Supprimez simplement le volume de votre configuration docker qui contient votre base de données mysql. Bien sûr, votre base de données sera supprimée si vous faites un docker-compose ou détruisez autrement votre conteneur, donc voilà.