KWALIFIKACJA INF3 - WRZESIEŃ 2014

PYTANIE NR 19.
Które polecenie wydane z konsoli systemowej dokona przywrócenia bazy danych?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne jest polecenie z klientem mysql i przekierowaniem wejścia <: wczytuje ono plik kopia.sql i wykonuje zawarte w nim instrukcje SQL na wskazanej bazie.
Polecenia z mysqldump służą do tworzenia zrzutów (kopii), a użycie > zapisuje wynik do pliku, czyli oznacza eksport, nie odtwarzanie.

Pełne wyjaśnienie:

Aby przywrócić (odtworzyć) bazę danych z pliku kopii logicznej w formacie SQL, potrzebujesz narzędzia, które wykona instrukcje SQL zapisane w pliku. Taką rolę pełni klient wiersza poleceń mysql. Zapis:

mysql -u root -p baza < kopia.sql

oznacza: uruchom klienta mysql, zaloguj się jako użytkownik root (hasło zostanie podane po -p), wybierz bazę o nazwie "baza", a następnie wczytaj zawartość pliku kopia.sql jako standardowe wejście. Znak < przekierowuje plik do programu, więc program "czyta" polecenia z pliku i je wykonuje — to jest właśnie import/odtworzenie.

Pozostałe opcje są błędne, bo mieszają narzędzie i kierunek przekierowania:

  • mysqldump ... służy do eksportu (tworzenia zrzutu). Nie jest typowo używany do odtwarzania, tylko do generowania SQL z istniejącej bazy.
  • Użycie > oznacza zapis standardowego wyjścia do pliku. Gdy wykonasz mysqldump ... > kopia.sql, tworzysz plik kopii, a nie go odtwarzasz.
  • Użycie mysql ... > kopia.sql również nie odtwarza bazy: przekierowujesz wyjście programu do pliku, więc ewentualne komunikaty lub wynik trafią do pliku, a program nie otrzyma poleceń SQL do wykonania.

W praktyce warto zapamiętać prostą regułę: dump = eksport, a mysql + < plik.sql = import. Na egzaminie najczęstsza pułapka to nieuwzględnienie znaczenia < i > albo automatyczne przypisanie "kopia" do mysqldump bez analizy, co faktycznie robi polecenie.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Znak < przekierowuje standardowe wejście programu. W praktyce oznacza to, że klient mysql czyta polecenia SQL z pliku (np. kopia.sql) i wykonuje je na wskazanej bazie, zamiast oczekiwać wpisywania komend ręcznie.
mysql jest klientem, który wykonuje instrukcje SQL (czyli potrafi "wgrać" plik .sql). mysqldump generuje zrzut bazy do postaci tekstu SQL, czyli służy głównie do tworzenia kopii, a nie do jej wczytywania.
Znak > przekierowuje standardowe wyjście do pliku. Gdy użyjesz go z mysqldump, zapisujesz wygenerowany zrzut SQL do pliku (np. > kopia.sql). To jest eksport/kopia zapasowa, nie odtwarzanie.
Typowy schemat to uruchomienie klienta mysql z danymi logowania i wskazaniem bazy, a następnie przekierowanie pliku do wejścia: mysql -u użytkownik -p nazwa_bazy < plik.sql. Kluczowe jest użycie <, bo wtedy SQL z pliku zostaje wykonany.
Najczęstsze błędy to: pomylenie narzędzi (użycie mysqldump zamiast mysql), odwrócenie przekierowania (> zamiast <), brak uprawnień użytkownika do tworzenia/zmian tabel oraz wskazanie złej bazy. Warto też sprawdzić kodowanie i poprawność pliku.
Nie. Przekierowanie > zapisuje wyjście programu do pliku, więc nie dostarczasz klientowi mysql żadnych instrukcji SQL do wykonania. Do odtworzenia potrzebujesz przekierowania wejścia < (wczytania pliku .sql).
mysqldump używa się, gdy trzeba wykonać kopię logiczną bazy (np. przed aktualizacją aplikacji, migracją serwera albo wdrożeniem). Narzędzie generuje plik SQL, który później można zaimportować klientem mysql na innym środowisku.
Możesz otworzyć plik w edytorze i sprawdzić, czy zawiera instrukcje typu CREATE TABLE, INSERT lub komentarze nagłówkowe zrzutu. W praktyce ocenia się też rozmiar pliku, brak "uciętych" linii oraz to, czy polecenia kończą się średnikami.
Najczęściej tak, bo wtedy klient wie, do jakiej bazy zastosować instrukcje (o ile skrypt nie zawiera własnych poleceń wyboru bazy). Jeśli skrypt sam tworzy i wybiera bazę, sposób uruchomienia może się różnić, ale na egzaminie zwykle testuje się podstawowy wariant ze wskazaniem bazy.
Przećwicz kilka scenariuszy w konsoli: tworzenie zrzutu do pliku (mysqldump ... > plik.sql) oraz odtwarzanie z pliku (mysql ... < plik.sql). Naucz się znaczenia przekierowań < i > oraz rozpoznawania, czy polecenie tworzy plik, czy go wczytuje.
info

Statystycznie 51% uczniów zna prawidłową odpowiedź. trudne

Specjaliści zwracają uwagę: "Poprawne jest polecenie z klientem mysql i przekierowaniem wejścia &lt;: wczytuje ono plik kopia.sql i wykonuje zawarte w nim instrukcje SQL na wskazanej bazie."

Źródła:

  • MySQL 8.0 Reference Manual: "mysql — The MySQL Command-Line Client", https://dev.mysql.com/doc/refman/8.0/en/mysql.html - accessed 2026-03-04
  • MySQL 8.0 Reference Manual: "mysqldump — A Database Backup Program", https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html - accessed 2026-03-04
  • MySQL 8.0 Reference Manual: "Backup and Recovery", https://dev.mysql.com/doc/refman/8.0/en/backup-and-recovery.html - accessed 2026-03-04

Materiały:

  • Dokumentacja MySQL: opis klienta mysql (import skryptów SQL)
  • Dokumentacja MySQL: opis narzędzia mysqldump (tworzenie kopii logicznej)
  • Ćwiczenia z powłoki: przekierowania, strumienie STDIN/STDOUT, praca na plikach .sql

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego