MySQL unter CasaOS mit dem offiziellen Docker-Image, einem persistenten /var/lib/mysql-Volume und einem expliziten Versions-Tag installieren. Verlassen Sie sich bei einer wichtigen Datenbank nicht auf einen alten Screenshot aus dem Jahr 2023 oder ein veränderliches latest-Tag.
Im September 2026 veröffentlicht das offizielle Docker-Image MySQL 8.4 LTS sowie neuere 9.x- und Innovation-Versionen. Für langfristig betriebene selbst gehostete Dienste ist 8.4 eine sinnvolle Kompatibilitätsgrundlage, sofern Ihre Anwendung nicht ausdrücklich eine neuere Hauptversion unterstützt.
Das offizielle MySQL-Image verwenden
Das aktuelle offizielle MySQL-Docker-Image wird von der Docker-Community und dem MySQL-Team gepflegt.
Versions-Tag bewusst auswählen
Verwenden Sie einen festgelegten Major-/LTS-Tag wie:
mysql:8.4
statt blind latest, das mit Kompatibilitätsänderungen auf eine neuere Hauptversion aktualisiert werden kann.
Persistente CasaOS-Einstellungen
-
Image:
mysql:8.4 -
Container-Port:
3306 -
Persistentes Volume: AppData-Pfad des Hosts →
/var/lib/mysql - MYSQL_ROOT_PASSWORD: starkes Root-Passwort für die Erstinitialisierung
-
Optional:
MYSQL_DATABASE,MYSQL_USER,MYSQL_PASSWORD
Port 3306 nicht dem Internet aussetzen
Wenn eine andere Docker-Anwendung auf demselben Host MySQL benötigt, setzen Sie beide Dienste in ein gemeinsam genutztes Docker-Netzwerk und verwenden Sie den Dienstnamen. Sie müssen Port 3306 häufig überhaupt nicht veröffentlichen.
Einen Anwendungsbenutzer statt root erstellen
Verwenden Sie MYSQL_DATABASE, MYSQL_USERund MYSQL_PASSWORD während der Erstinitialisierung, um eine anwendungsspezifische Datenbank und ein Konto zu erstellen.
Verwenden Sie root für Administration und Wiederherstellung.
Umgebungsvariablen für die Erstinitialisierung verstehen
Das offizielle Image initialisiert die Datenbank nur, wenn das Datenverzeichnis leer ist. Das spätere Ändern von Bootstrap-Umgebungsvariablen überschreibt vorhandene Konten oder Datenbanken nicht automatisch.
Mit logischen Dumps sichern
Für portable Sicherungen verwenden Sie mysqldump oder dem dokumentierten Dump-/Wiederherstellungsmuster des offiziellen Images statt dem Kopieren aktiver Datenbankdateien, während MySQL Schreibvorgänge ausführt.
phpMyAdmin oder eine andere Anwendung über den Dienstnamen verbinden
In einem gemeinsam genutzten Docker-Netzwerk kann eine Webanwendung über einen Dienst- oder Container-Hostnamen wie mysql. In einem anderen Container, localhost bezieht sich auf diesen Container selbst.
Der Docker-Netzwerkleitfaden erklärt dieses Container-Netzwerkmodell.
MySQL-Gesundheit vor der Verbindung anderer Anwendungen prüfen
Richten Sie Produktionsanwendungen nach dem ersten Start nicht sofort auf die Datenbank aus. Prüfen Sie die Containerprotokolle und vergewissern Sie sich, dass MySQL die Initialisierung abgeschlossen hat und nicht in einer Neustartschleife feststeckt.
docker logs mysql
docker exec -it mysql mysqladmin -uroot -p ping
Ein gesunder Server sollte antworten, nachdem die Ersteinrichtung der Datenbank abgeschlossen ist. Der erste Start kann länger dauern, da das Image Systemtabellen, Benutzer und die angeforderte Datenbank erstellt.
Zeichensatz und Zeitzone vor dem Datenimport festlegen
Anwendungen können bestimmte Erwartungen an Sortierung, Zeichensatz oder Zeitzone haben. Wenn Sie eine bestehende Datenbank migrieren, vergleichen Sie vor dem Import die MySQL-Major-Version und Konfiguration des alten Servers.
Gehen Sie nicht davon aus, dass eine für MySQL 8.0 getestete Anwendung automatisch MySQL 9.x unterstützt, nur weil der Container startet. Fixieren Sie die von den Anbietern der Anwendung benötigte Major-Version.
Datenbankspeicher von allgemeinen freigegebenen Ordnern trennen
MySQL-Datendateien sollten auf zuverlässigem lokalem Speicher mit konsistenten Berechtigungen und geringer Latenz liegen. Platzieren Sie sie nicht /var/lib/mysql auf einem unzuverlässigen SMB-Mount oder Wechseldatenträger, nur weil dieser mehr Speicherplatz bietet.
Wenn der CasaOS-Host über eine SSD und einen größeren HDD-Pool verfügt, ist die SSD häufig der bessere Speicherort für die Datenbank, während geplante Dumps auf den größeren Backup-Speicher kopiert werden können.
FAQ
Sollte ich mysql:latest verwenden?
Bevorzugen Sie für produktionsähnliches Self-Hosting einen bewusst gewählten Major-/LTS-Tag, damit ein regulärer Pull nicht unerwartet auf eine neue Major-Version wechselt.
Wo sollten die MySQL-Daten dauerhaft gespeichert werden?
Ordnen Sie einen AppData-Ordner des Hosts zu /var/lib/mysql.
Muss ich Port 3306 veröffentlichen?
Nicht, wenn nur andere Container im selben Docker-Netzwerk die Datenbank benötigen.
Kann ich MYSQL_ROOT_PASSWORD später durch Bearbeiten der Container-Variable ändern?
Nicht zuverlässig nach der Initialisierung. Verwalten Sie bestehende Datenbankkonten direkt in MySQL.
