Installera MySQL på CasaOS med den officiella Docker-avbildningen, en beständig volym för /var/lib/mysql och en explicit versionsetikett. Förlita dig inte på en gammal skärmbild från 2023 eller en flytande latest-tagg för en databas du bryr dig om.
I september 2026 publicerar den officiella Docker-avbildningen MySQL 8.4 LTS samt nyare 9.x-/innovation-utgåvor. För långvariga självhostade tjänster är 8.4 en rimlig kompatibilitetsbaslinje, såvida inte din applikation uttryckligen stöder en nyare huvudversion.
Använd den officiella MySQL-avbildningen
Den aktuella officiella MySQL Docker-avbildningen underhålls av Docker Community och MySQL-teamet.
Välj versionsetikett medvetet
Använd en fast huvudversions-/LTS-tagg, till exempel:
mysql:8.4
i stället för att blint följa latest, som kan uppgraderas till en nyare huvudversion med kompatibilitetsändringar.
Beständiga CasaOS-inställningar
-
Avbildning:
mysql:8.4 -
Containerport:
3306 -
Beständig volym: värdsökväg för AppData →
/var/lib/mysql - MYSQL_ROOT_PASSWORD: starkt root-lösenord för bootstrap
-
Valfritt:
MYSQL_DATABASE,MYSQL_USER,MYSQL_PASSWORD
Exponera inte port 3306 mot internet
Om en annan Docker-app på samma värd behöver MySQL, placerar du båda tjänsterna i ett delat Docker-nätverk och använder tjänstenamnet. Du behöver ofta inte publicera port 3306 alls.
Skapa en programanvändare i stället för att använda root
Använd MYSQL_DATABASE, MYSQL_USER, och MYSQL_PASSWORD under den första initieringen för att skapa en programspecifik databas och ett konto.
Behåll root för administration och återställning.
Förstå miljövariabler vid första körningen
Den officiella avbildningen initierar databasen endast när datakatalogen är tom. Om du ändrar bootstrap-miljövariabler senare skrivs befintliga konton eller databaser inte automatiskt över.
Säkerhetskopiera med logiska dumpar
Använd för portabla säkerhetskopior mysqldump eller det officiella avbildningens dokumenterade mönster för dumpning/återställning, i stället för att kopiera aktiva databasfiler medan MySQL skriver till dem.
Anslut phpMyAdmin eller en annan app med tjänstenamnet
I ett delat Docker-nätverk kan en webbapp ansluta till MySQL med ett tjänste-/värdnamn för tjänsten eller containern, till exempel mysql. Inuti en annan container, localhost avser själva containern.
Guiden om Docker-nätverk förklarar den containernätverksmodellen.
Kontrollera MySQL-hälsan innan du ansluter andra appar
Efter den första starten bör du inte omedelbart ansluta produktionsapplikationer till databasen. Kontrollera containerloggarna och verifiera att MySQL har slutfört initieringen och inte har fastnat i en omstartsloop.
docker logs mysql
docker exec -it mysql mysqladmin -uroot -p ping
En frisk server bör svara när den första databaskonfigurationen är klar. Den första starten kan ta längre tid eftersom avbilden skapar systemtabeller, användare och den begärda databasen.
Planera teckenuppsättning och tidszon innan du importerar data
Applikationer kan ha specifika förväntningar på sortering, teckenuppsättning eller tidszon. Om du migrerar en befintlig databas bör du jämföra den gamla serverns MySQL-huvudversion och konfiguration innan du importerar.
Anta inte att en applikation som testats med MySQL 8.0 automatiskt stöder MySQL 9.x bara för att containern startar. Lås fast den huvudversion som applikationsleverantören kräver.
Separera databasen från allmänna delade mappar
MySQL-datafiler bör lagras på tillförlitlig lokal lagring med konsekventa behörigheter och låg latens. Placera dem inte /var/lib/mysql på en opålitlig SMB-montering eller flyttbar enhet bara för att den har större kapacitet.
Om CasaOS-värden har en SSD och en större HDD-pool är SSD:n ofta den bättre platsen för databasen, medan schemalagda dumpfiler kan kopieras till den större säkerhetskopieringslagringen.
Vanliga frågor
Bör jag använda mysql:latest?
Föredra en medvetet vald major-/LTS-tagg för produktionsliknande self-hosting, så att en vanlig hämtning inte oväntat hoppar mellan huvudversioner.
Var ska MySQL-data lagras permanent?
Mappa en AppData-mapp på värden till /var/lib/mysql.
Behöver jag publicera port 3306?
Inte när det bara är andra containrar i samma Docker-nätverk som behöver databasen.
Kan jag ändra MYSQL_ROOT_PASSWORD senare genom att redigera containervariabeln?
Inte pålitligt efter initieringen. Hantera befintliga databaskonton från MySQL.
