INF.03 · Bazy danych i SQL

Kopia zapasowa, która naprawdę działa

Zanim wypróbujesz nową funkcję w bazie sklepu, robisz jej kopię. Jeśli coś pójdzie źle, przywracasz bazę i wracasz do punktu wyjścia, zamiast tracić tygodnie pracy. Ale kopia jest coś warta dopiero wtedy, gdy ją sprawdzisz: odtworzysz i porównasz. Plik, który nigdy nie został przetestowany, jest tylko nadzieją.

  • około 35 minut
  • eksport · import · przywracanie
  • phpMyAdmin i polecenia SQL

Po tej lekcji: wykonasz eksport i import, ułożysz poprawny plan kopii zapasowej z weryfikacją i wczytasz dane z pliku CSV bez błędu nagłówka.

1 · Cztery słowa

Co oznaczają te operacje

Te cztery pojęcia występują razem, więc łatwo je pomylić.

Eksportbaza → plik

Zapisanie struktury i danych do pliku, najczęściej .sql (komplet poleceń CREATE TABLE i INSERT) albo .csv (dane tabelaryczne).

Na przykład phpMyAdmin: baza, zakładka Eksport, format SQL, Wykonaj.

Importplik → baza

Wczytanie pliku .sql lub .csv z powrotem do bazy.

Na przykład phpMyAdmin: baza, zakładka Importuj, wskaż plik, Wykonaj.

Kopia zapasowaregularny eksport

Eksport całej bazy przechowywany w bezpiecznym miejscu, nie na tym samym dysku co oryginał.

Na przykład plik 2026-03-10_sklep_muzyczny.sql na pendrive i w chmurze.

Przywracaniekopia → baza

Import kopii z powrotem, gdy coś poszło nie tak.

Na przykład po błędnym DROP odtwarzasz bazę z pliku.

2 · Plan kopii z weryfikacją

Kopia, która jest sprawdzona

Kliknij kroki w kolejności, w jakiej wykonałbyś je w szkole albo firmie. Jeśli uznasz kopię za gotową zbyt wcześnie, zobaczysz, dlaczego to ryzykowne.

Ta interakcja wymaga włączonego JavaScriptu.

3 · Dane z pliku

LOAD DATA i SOURCE

Z poziomu samego SQL możesz wczytać dane z pliku CSV poleceniem LOAD DATA INFILE. To najszybszy sposób wczytania wielu wierszy naraz, dużo szybszy niż setki pojedynczych INSERT. Strukturę z pliku .sql odtworzysz w konsoli poleceniem SOURCE.

import.sqlsql
LOAD DATA INFILE 'klienci.csv'
INTO TABLE Klienci
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

SOURCE 2026-03-10_sklep_muzyczny.sql;
  1. IGNORE 1 ROWS pomija pierwszy wiersz pliku, jeśli zawiera nazwy kolumn zamiast danych. Bez tego nagłówek trafi do tabeli jako zwykły, błędny rekord.
  2. SOURCE to polecenie konsoli MySQL. Wykonuje cały plik .sql krok po kroku, tak jakbyś wkleił jego zawartość do okna zapytań.
  3. Uwaga na uprawnienia LOAD DATA INFILE wymaga uprawnienia do plików i dozwolonej lokalizacji. W phpMyAdmin prościej użyć zakładki Importuj i zaznaczyć opcję „pierwszy wiersz zawiera nazwy kolumn”.

4 · Decyzje

Jaka opcja eksportu lub importu?

Przy eksporcie i imporcie w phpMyAdmin stale trzeba coś wybrać. Dobierz właściwą decyzję do sytuacji.

Ta interakcja wymaga włączonego JavaScriptu.

5 · Zanim się pomylisz

Trzy pomyłki w kopiach zapasowych

Rozwiń każdą z nich.

Kopia na tym samym dysku
Tak nie
C:\xampp\mysql\data\  (baza)
C:\xampp\kopia.sql   (kopia)

Jeśli dysk się zepsuje, tracisz bazę i kopię jednocześnie.

Tak
Kopia na pendrive, dysku sieciowym albo w chmurze.

Kopia ma być fizycznie osobno od oryginału.

Kopia, której nikt nie sprawdził
Tak nie
Eksport wykonany, plik leży w folderze.

O uszkodzonym pliku dowiadujesz się dopiero wtedy, gdy kopia jest potrzebna.

Tak
Eksport, import do bazy testowej, porównanie liczby rekordów.

Kopia jest sprawdzona dopiero po odtworzeniu.

Nagłówek CSV jako rekord
Tak nie
LOAD DATA INFILE 'klienci.csv'
INTO TABLE Klienci
FIELDS TERMINATED BY ',';

Pierwszy wiersz (nazwy kolumn) trafia do tabeli jako błędny rekord, na przykład z imieniem „imie”.

Tak
LOAD DATA INFILE 'klienci.csv'
INTO TABLE Klienci
FIELDS TERMINATED BY ','
IGNORE 1 ROWS;

IGNORE 1 ROWS pomija nagłówek.

6 · Sprawdź sam siebie

Zanim uznasz import lub kopię za gotowe

W przykładowym zadaniu praktycznym na INF.03 zdający importuje tabele z pliku .sql do nowo utworzonej bazy w phpMyAdmin. Sprawdzane jest też, czy umiesz zweryfikować kopię i przywrócić dane.

Podsumowanie

Co warto zapamiętać

  1. Eksport zapisuje bazę do pliku, import wczytuje plik do bazy.
  2. Kopia zapasowa to eksport przechowywany poza serwerem bazy.
  3. Kopia jest warta tyle, ile jej test: odtwórz i porównaj.
  4. LOAD DATA INFILE ... IGNORE 1 ROWS pomija nagłówek CSV.
  5. Błędy znaków usuwasz, ujednolicając kodowanie (zwykle utf8mb4).

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka