Zainstaluj MySQL w CasaOS za pomocą oficjalnego obrazu Dockera, trwałego wolumenu /var/lib/mysql oraz jawnie określonego tagu wersji. Nie polegaj na starym zrzucie ekranu z 2023 roku ani na ruchomym tagu latest w przypadku bazy danych, na której Ci zależy.
We wrześniu 2026 roku oficjalny obraz Dockera udostępnia MySQL 8.4 LTS, a także nowsze gałęzie 9.x i innovation. W przypadku długotrwałych usług hostowanych samodzielnie wersja 8.4 jest rozsądną bazą zapewniającą zgodność, chyba że aplikacja wyraźnie obsługuje nowszą wersję główną.
Używaj oficjalnego obrazu MySQL
Obecny oficjalny obraz MySQL dla Dockera jest utrzymywany przez społeczność Dockera i zespół MySQL.
Wybierz tag wersji świadomie
Użyj przypiętego tagu głównej wersji/LTS, takiego jak:
mysql:8.4
zamiast bezmyślnie używać latest, który może przejść na nowsze wydanie główne z powodu zmian zgodności.
Trwałe ustawienia CasaOS
-
Obraz:
mysql:8.4 -
Port kontenera:
3306 -
Trwały wolumen: ścieżka AppData hosta →
/var/lib/mysql - MYSQL_ROOT_PASSWORD: silne hasło root używane podczas uruchamiania
-
Opcjonalnie:
Użyj,MYSQL_DATABASE,MYSQL_PASSWORD
Nie udostępniaj portu 3306 w Internecie
Jeśli inna aplikacja Docker na tym samym hoście potrzebuje MySQL, umieść obie usługi we wspólnej sieci Docker i użyj nazwy usługi. Zazwyczaj nie musisz w ogóle publikować portu 3306.
Create an Application User Instead of Using Root
Utwórz użytkownika aplikacji zamiast używać konta root Użyj, MYSQL_DATABASE, oraz MYSQL_USER MYSQL_PASSWORD podczas pierwszej inicjalizacji, aby utworzyć bazę danych i konto przeznaczone dla aplikacji.
Konto root zachowaj do administracji i odzyskiwania dostępu.
Poznaj zmienne środowiskowe używane przy pierwszym uruchomieniu
Oficjalny obraz inicjalizuje bazę danych tylko wtedy, gdy katalog danych jest pusty. Późniejsza zmiana zmiennych środowiskowych używanych podczas uruchamiania nie przepisuje automatycznie istniejących kont ani baz danych.
Twórz kopie zapasowe za pomocą zrzutów logicznych
Aby tworzyć przenośne kopie zapasowe, użyj mysqldump lub skorzystaj z udokumentowanego przez oficjalny obraz schematu tworzenia i przywracania zrzutów zamiast kopiować aktywne pliki bazy danych podczas zapisu przez MySQL.
Połącz phpMyAdmin lub inną aplikację według nazwy usługi
W udostępnionej sieci Docker aplikacja internetowa może łączyć się z MySQL przy użyciu nazwy usługi/kontenera, takiej jak mysql. Wewnątrz innego kontenera, localhost odnosi się do samego kontenera.
W przewodniku po sieci Docker wyjaśniono ten model sieci kontenerów.
Sprawdź stan MySQL przed połączeniem innych aplikacji
Po pierwszym uruchomieniu nie kieruj od razu aplikacji produkcyjnych do tej bazy danych. Sprawdź dzienniki kontenera i upewnij się, że MySQL zakończył inicjalizację, a nie pozostaje w pętli restartów.
docker logs mysql
docker exec -it mysql mysqladmin -uroot -p ping
Sprawny serwer powinien odpowiadać po zakończeniu początkowej konfiguracji bazy danych. Pierwsze uruchomienie może potrwać dłużej, ponieważ obraz tworzy tabele systemowe, użytkowników i żądaną bazę danych.
Zaplanuj zestaw znaków i strefę czasową przed zaimportowaniem danych
Aplikacje mogą wymagać określonego porównywania napisów, zestawu znaków lub strefy czasowej. Jeśli migrujesz istniejącą bazę danych, porównaj główną wersję MySQL i konfigurację starego serwera przed zaimportowaniem danych.
Nie zakładaj, że aplikacja testowana z MySQL 8.0 będzie automatycznie obsługiwać MySQL 9.x tylko dlatego, że kontener się uruchamia. Przypnij główną wersję wymaganą przez dostawcę aplikacji.
Oddziel miejsce na bazę danych od ogólnych folderów współdzielonych
Pliki danych MySQL powinny znajdować się na niezawodnej pamięci lokalnej, z zachowaniem spójnych uprawnień i niskich opóźnień. Nie umieszczaj /var/lib/mysql na zawodnym udziale SMB lub dysku wymiennym tylko dlatego, że oferuje więcej miejsca.
Jeśli host CasaOS ma dysk SSD i większą pulę dysków HDD, SSD jest często lepszym miejscem na bazę danych, a zaplanowane zrzuty można kopiować do większej pamięci masowej przeznaczonej na kopie zapasowe.
FAQ
Czy powinienem używać mysql:latest?
W środowisku zbliżonym do produkcyjnego wybierz konkretny tag głównej wersji lub LTS, aby zwykłe pobranie obrazu nie spowodowało nieoczekiwanej aktualizacji do nowszej głównej wersji.
Gdzie powinny być przechowywane dane MySQL?
Zamapuj folder AppData hosta na /var/lib/mysql.
Czy muszę publikować port 3306?
Nie, jeśli tylko inne kontenery w tej samej sieci Docker muszą korzystać z bazy danych.
Czy mogę później zmienić MYSQL_ROOT_PASSWORD, edytując zmienną kontenera?
Nie po zakończeniu inicjalizacji w sposób niezawodny. Zarządzaj istniejącymi kontami bazy danych bezpośrednio z poziomu MySQL.
