Skip to content

Zarządzanie bazami danych

Panel administracyjny zapewnia dostęp do zarządzania bazami danych MariaDB. Każda baza działa w trybie InnoDB, co gwarantuje transakcyjność oraz obsługę kluczy obcych.

Dostęp do zarządzania bazami danych

Aby przejść do zarządzania bazami danych:

  1. Zaloguj się do panelu administracyjnego
  2. Wybierz opcję Bazy danych z górnego menu nawigacyjnego
  3. W głównym widoku zobaczysz listę wszystkich istniejących baz oraz przyciski akcji

Z poziomu tego widoku możesz:

  • Przeglądać listę wszystkich baz danych na koncie
  • Tworzyć nowe bazy danych (nazwa do 64 znaków, alfanumeryczne i podkreślnik)
  • Dodawać użytkowników z konfigurowalnymi uprawnieniami
  • Zarządzać istniejącymi bazami - import, eksport, użytkownicy

PHPMyAdmin - dostęp z logowaniem SSO

Po kliknięciu na konkretną bazę danych z listy, w górnej części ekranu pojawi się przycisk Otwórz PHPMyAdmin. Link wykorzystuje mechanizm Single Sign-On (SSO), który automatycznie loguje cię do PHPMyAdmin bez konieczności wpisywania hasła.

💡 Jak działa SSO do PHPMyAdmin

System generuje jednorazowy token autoryzacyjny ważny przez kilka minut. Po kliknięciu w link, PHPMyAdmin automatycznie zaloguje cię na konto użytkownika bazy danych.

PHPMyAdmin to webowe narzędzie do zarządzania bazami danych, które umożliwia:

  • Przeglądanie i edycję tabel w interfejsie graficznym
  • Wykonywanie zapytań SQL przez zakładkę SQL
  • Import i eksport baz przez przeglądarkę (limit 50 MB w interfejsie, 500 MB przez panel)
  • Zarządzanie indeksami, kluczami obcymi, triggerami
  • Podgląd struktury bazy w formie diagramu relacji

PHPMyAdmin przydaje się, gdy potrzebujesz szybko sprawdzić zawartość tabeli, poprawić pojedynczy rekord lub przetestować zapytanie SQL przed wdrożeniem do aplikacji.

Użytkownicy bazy danych

W sekcji Użytkownicy bazy danych zarządzasz kontami, które mają dostęp do wybranej bazy. Każdy użytkownik posiada:

  • Nazwę konta
  • Hasło (minimum 10 znaków, zalecane minimum 16 znaków z dużymi literami, cyframi i znakami specjalnymi)
  • Zestaw uprawnień definiujący, jakie operacje może wykonywać

Dodawanie nowego użytkownika

Kiedy dodajesz nowego użytkownika do bazy danych:

  1. Kliknij przycisk Dodaj użytkownika w sekcji Użytkownicy
  2. Wpisz nazwę użytkownika (unikalna w ramach twojej domeny)
  3. Ustaw silne hasło - system pomaga wygwnwrować hasło symbolem klucza
  4. Wybierz uprawnienia z listy dostępnych operacji (domyślnie wszystkie zaznaczone)
  5. Zapisz - użytkownik zostanie utworzony w ciągu 2-3 sekund

Nowy użytkownik może natychmiast łączyć się z bazą przez PHPMyAdmin lub przez aplikację (np. WordPress, Laravel, Symfony).

Uprawnienia użytkowników

System pozwala na precyzyjne dostosowanie uprawnień dla każdego użytkownika. Podstawowe uprawnienia to:

  • SELECT - odczyt danych z tabel
  • INSERT - dodawanie nowych rekordów
  • UPDATE - aktualizacja istniejących rekordów
  • DELETE - usuwanie rekordów
  • CREATE - tworzenie nowych tabel
  • DROP - usuwanie tabel i baz danych
  • ALTER - modyfikacja struktury tabel (dodawanie kolumn, zmiana typów)
  • INDEX - zarządzanie indeksami
  • LOCK TABLES - blokowanie tabel podczas operacji

Możesz wyłączyć wybrane uprawnienia, odznaczając checkboxy przy konkretnych operacjach.

Praktyczne scenariusze ograniczania uprawnień

Konto aplikacji produkcyjnej - aplikacja e-commerce, która nie powinna modyfikować struktury bazy:

  • Włącz: SELECT, INSERT, UPDATE, DELETE
  • Wyłącz: DROP, ALTER, CREATE
  • Efekt: aplikacja może zapisywać zamówienia i produkty, ale programista nie usunie przypadkowo tabeli przez błąd w migracji

Konto do odczytu dla raportów - BI tool łączący się z bazą produkcyjną:

  • Włącz: SELECT
  • Wyłącz: INSERT, UPDATE, DELETE, DROP, ALTER, CREATE
  • Efekt: narzędzie analityczne może pobierać dane do raportów, ale nie może ich modyfikować ani usuwać

Konto staging/testowe - środowisko deweloperskie dla testów:

  • Włącz: wszystkie uprawnienia
  • Efekt: pełna swoboda w testowaniu migracji, modyfikacji struktury, testowania skryptów

Użytkownicy WordPress

💡 Automatyczne konta przy instalacji WordPress

Jeśli zainstalowałeś WordPress przez opcję Instalator aplikacji w panelu, system automatycznie utworzył dwa konta:

  1. user_domena - główne konto WordPress z pełnymi uprawnieniami (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX). WordPress używa tego konta do wszystkich operacji na bazie - zapisywania postów, aktualizacji opcji, instalacji pluginów. Parametry połączenia zapisane są w pliku wp-config.php.

  2. usser_phpma - dedykowane konto tylko do odczytu (SELECT) dla PHPMyAdmin. Służy do bezpiecznego przeglądania bazy bez ryzyka przypadkowej modyfikacji przez interfejs graficzny.

Nie usuwaj konta user_domena, ponieważ WordPress przestanie działać - strona zwróci błąd "Error establishing database connection". Jeśli przypadkowo usuniesz to konto, utwórz nowe z identycznymi danymi logowania jak w wp-config.php (nazwa, hasło, uprawnienia).

Import bazy danych

W sekcji Import pliku bazy danych wgrywasz bazę z lokalnego komputera przez przeglądarkę. Import przydaje się, gdy:

  • Przenosisz stronę z innego hostingu
  • Przywracasz bazę z lokalnej kopii zapasowej
  • Wdrażasz bazę przygotowaną lokalnie (np. przez XAMPP, Laravel Valet, Docker)

Wymagania dla importowanych plików

  • Maksymalny rozmiar: 500 MB (nieskompresowany plik SQL może mieć do 500 MB)
  • Obsługiwane formaty:
    • .sql - standardowy dump SQL (wygenerowany przez mysqldump lub PHPMyAdmin)
    • .gz - plik SQL skompresowany gzip (współczynnik kompresji ~10:1, plik 5 GB → 500 MB)
    • .zip - plik SQL skompresowany ZIP (współczynnik kompresji ~8:1)

Plik SQL powinien zawierać poprawną składnię MySQL/MariaDB. Kodowanie powinno być ustawione na UTF-8, lub UTF8-mb4 aby uniknąć błędów na stronie.

Proces importu krok po kroku

  1. Kliknij przycisk Wybierz plik w sekcji Import
  2. Wskaż plik .sql, .gz lub .zip z dysku
  3. Kliknij Importuj - rozpocznie się upload (dla 500 MB trwa ~2-5 minut przy łączu 10-20 Mbps)
  4. System rozpakowuje plik (jeśli skompresowany) i wykonuje zapytania SQL
  5. Po zakończeniu zobaczysz komunikat z liczbą zaimportowanych tabel i rekordów

⚠️ Import nadpisuje istniejące tabele

Jeśli w bazie docelowej istnieją już tabele o tych samych nazwach co w importowanym pliku SQL, zostaną one usunięte i zastąpione danymi z importu.

Przykład: Importujesz bazę WordPress z 12 tabelami (wp_posts, wp_options, wp_users...). Jeśli baza docelowa już zawiera te tabele, zostaną one całkowicie zastąpione. Wszystkie dane w istniejących tabelach zostaną utracone.

Zalecenie: Przed importem wykonaj eksport obecnej bazy jako backup. W przypadku błędu będziesz mógł przywrócić poprzedni stan w ciągu kilku minut.

Rozwiązywanie problemów z importem

Błąd: "Plik jest za duży" - plik przekracza 500 MB

  • Rozwiązanie: Skompresuj plik przez gzip (gzip dump.sqldump.sql.gz) lub podziel dump na mniejsze części przez split

Błąd: "Syntax error near line 42" - niepoprawne zapytanie SQL

  • Przyczyna: dump został wygenerowany dla innej wersji MySQL/MariaDB lub zawiera błędy składniowe
  • Rozwiązanie: Otwórz plik SQL w edytorze, znajdź linię 42, sprawdź składnię zapytania, popraw lub usuń problematyczną linię

Błąd: "Access denied for user" - brak uprawnień

  • Przyczyna: użytkownik bazy nie ma uprawnień CREATE lub DROP
  • Rozwiązanie: Upewnij się, że zalogowany użytkownik ma pełne uprawnienia w sekcji Użytkownicy

Eksport bazy danych

Funkcja Eksport bazy danych pobiera pełną kopię bazy na lokalny komputer. Eksport tworzy plik SQL zawierający:

  • Strukturę tabel - instrukcje CREATE TABLE z definicją kolumn, typów danych, indeksów
  • Dane - instrukcje INSERT INTO ze wszystkimi rekordami
  • Triggery, procedury, widoki - jeśli istnieją (zaawansowane funkcje bazy)
  • Ustawienia charset i collation - UTF-8, utf8mb4_unicode_ci lub inne skonfigurowane

Kiedy wykonać eksport bazy

Przed aktualizacją WordPress/WooCommerce:

  • WordPress 6.3 → 6.4: zmieniona struktura tabel blokowych
  • WooCommerce 7.0 → 8.0: migracja danych HPOS (High-Performance Order Storage)
  • Eksport zajmuje 10-30 sekund, przywrócenie w razie problemu 1-2 minuty

Przed modyfikacją struktury przez developera:

  • Dodawanie nowych kolumn przez migrację Laravel
  • Zmiana typu kolumny z VARCHAR(255) na TEXT
  • Usuwanie niepotrzebnych tabel
  • W przypadku błędu możesz przywrócić stan sprzed zmiany

Przed testowaniem pluginów/modułów:

  • Plugin modyfikuje tabele (np. dodaje kolumny dla własnych danych)
  • W przypadku konfliktów lub błędów przywracasz czystą bazę

Regularne backupy manualne:

  • Codziennie o 9:00 przed rozpoczęciem pracy (dla krytycznych aplikacji)
  • Co tydzień w piątek EOD (dla mniej krytycznych projektów)
  • Przed deploymentem na produkcję (zawsze)

Proces eksportu

  1. Kliknij przycisk Eksportuj bazę danych
  2. System generuje dump SQL (dla bazy 1 GB trwa to ~10-20 sekund)
  3. Automatycznie rozpocznie się pobieranie pliku sql_backup_nazwa_bazy_DD-MM-YYYY_HH_MM.sql.gz
  4. Plik zapisze się w folderze Downloads przeglądarki

Dla bazy WordPress o rozmiarze 500 MB (100k postów, 2M komentarzy) eksport zajmuje około 15 sekund, plik SQL ma ~450 MB.

💡 Automatyczne kopie zapasowe

Hosting w Joton wykonuje automatyczne snapshoty całego konta (pliki + bazy danych) raz dziennie między 18:00 a 9:00. Snapshoty przechowywane są przez 30 dni.

Możesz przywrócić bazę danych z automatycznego backupu przez sekcję Kopie zapasowe w panelu. Szczegóły w dokumentacji kopii zapasowych.

Różnica między eksportem manualnym a automatycznym backupem:

  • Eksport manualny - plik SQL na twoim komputerze, pełna kontrola, możesz edytować przed importem, przechowujesz dowolnie długo
  • Automatyczny backup - snapshot na serwerze, przywracanie jednym kliknięciem, przechowywany 30 dni, nie wymaga miejsca na dysku lokalnym

Limity i ograniczenia

Parametry techniczne zarządzania bazami danych w panelu:

  • Maksymalna liczba baz danych: zależna od pakietu hostingowego (od 1 do nieograniczona)
  • Maksymalny rozmiar pojedynczej bazy: zgodny z limitem miejsca na koncie (bez sztywnego limitu per baza)
  • Maksymalna liczba użytkowników: 100 użytkowników na bazę danych
  • Limit importu przez panel: 500 MB (upload + rozpakowanie + wykonanie)
  • Limit importu przez PHPMyAdmin: 50 MB (ograniczenie PHP upload_max_filesize)
  • Maksymalna liczba jednoczesnych połączeń: 30 połączeń per użytkownik bazy danych
  • Timeout zapytania SQL: 300 sekund (5 minut dla długich operacji ALTER TABLE, import)

Jeśli potrzebujesz zaimportować bazę większą niż 500 MB, skorzystaj z dostępu SSH i narzędzia mysql:

bash
mysql -u nazwa_uzytkownika -p nazwa_bazy < dump.sql

Ten sposób nie ma limitu rozmiaru pliku. Import bazy 10 GB przez SSH zajmuje 5-10 minut.