AIO deaktivieren
Dies hat es für mich behoben, als ich den AIO-Fehler bekam, wie Sie es getan haben, als ich einen Container von einem Gast-Debian-Betriebssystem von Virtualbox aus gestartet und die Datenbankdateien in einem freigegebenen Ordner unter Windows 10 erstellt habe.
Das Problem scheint zu sein, dass AIO in freigegebenen Ordnern oder zumindest in einigen Windows-Versionen nicht unterstützt wird. Es scheint bei mir aufgetreten zu sein, nachdem ich von Windows 10 Pro zu Home gewechselt bin, nachdem mein Hauptcomputer abgestürzt war.
Einzelheiten:
Hier sind einige Optionen:
Option 1 – Starten Sie den Container wie folgt:
docker run -it mysql --innodb_use_native_aio=0
Option 2 – fügen Sie den Befehl zu Ihrer docker-compose-Datei hinzu:
command: --innodb_use_native_aio=0
Im Kontext ist dies der relevante Teil meiner funktionierenden 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 – fügen Sie Ihrer my.cnf-Datei in Ihrem Build eine Option hinzu
innodb_use_native_aio=0
Option 4 – Behalten Sie Ihre Datenbank nicht im lokalen Dateisystem bei. (Kann Ihre Datenbank zerstören, nicht empfohlen)
Entfernen Sie einfach das Volume in Ihrer Docker-Konfiguration, das Ihre mysql-Datenbank enthält. Natürlich wird Ihre DB gelöscht, wenn Sie ein Docker-Compose-Down durchführen oder Ihren Container anderweitig zerstören, also das war's.