phpMyAdmin: utworzenie bazy i import pliku .sql z arkusza INF.03
Oprogramowanie: XAMPP 8.2.12, phpMyAdmin 5.2.1, Windows 10
Jak założyć bazę o nazwie z arkusza, zaimportować plik .sql w phpMyAdmin i co zrobić przy błędzie #1046, imporcie do złej bazy i krzakach.
Prawie każdy arkusz INF.03 zaczyna się od tych samych poleceń: „Utwórz bazę danych o nazwie …, z zestawem polskich znaków” i „Do bazy zaimportuj tabele z pliku ….sql z rozpakowanego archiwum”. Za import jest osobne kryterium w kluczu (R.1.1 - import udokumentowany zrzutem import), a od bazy zależą wszystkie zapytania i skrypt PHP.
Tutorial pokazuje całą czynność na prawdziwym pliku opona.sql z archiwum pliki8 arkusza INF.03-11-25.06-SG (opony), a potem cztery pomyłki wywołane naprawdę: import bez zaznaczonej bazy (błąd #1046), import do złej bazy, plik z własnym CREATE DATABASE i USE (fotografia.sql z INF.03-05-25.06-SG) oraz zły zestaw znaków pliku.
Zrzuty pochodzą z XAMPP 8.2.12 (phpMyAdmin 5.2.1, MariaDB 10.4.32) w Windows 10, 11 października 2026 r. phpMyAdmin w XAMPP ma tłumaczenie polskie tylko częściowo, dlatego część przycisków jest po angielsku (Create, Import, Browse).
Egzaminy ZawodoweINF.03
Jak korzystać z tutoriala
Suwak i strzałki obok niego - albo ←→ na klawiaturze - przechodzą krok po kroku; wyjaśnienie i podgląd zmieniają się razem z krokiem.
Lista „Etap” przenosi od razu do wybranego etapu.
„Tryb prezentacji” pokazuje same kroki, bez menu strony - na rzutnik.
Etap 1: Utworzenie bazy
Kroki 1-3
Krok 1: phpMyAdmin i lista baz
ok. 1 min
Przy uruchomionych Apache i MySQL wpisz w przeglądarce localhost/phpmyadmin. Po lewej stronie jest drzewo baz. Na świeżej instalacji XAMPP są tam tylko bazy systemowe (information_schema, mysql, performance_schema, phpmyadmin) i pusta baza test. Żadnej z nich nie ruszaj - bazę z arkusza zakładasz sama lub sam.
Typowe błędy
Jeśli zamiast phpMyAdmin widzisz czerwone komunikaty „Nie można nawiązać połączenia” albo „Cannot connect: invalid settings”, serwer MySQL nie działa. Uruchom go w panelu XAMPP (przycisk Start w wierszu MySQL) i odśwież stronę.
Zrzut ekranu po tym kroku
Krok 2: Nazwa bazy i porównywanie znaków
ok. 2 min
Kliknij New na górze drzewa (albo zakładkę Databases). W polu nazwy wpisz nazwę dokładnie z arkusza - tu opony (arkusz INF.03-11-25.06-SG: „Utwórz bazę danych o nazwie opony, z zestawem polskich znaków (np. utf8_polish_ci)”). Z listy obok wybierz porównywanie z arkusza: utf8_polish_ci albo utf8_unicode_ci - arkusze podają jedno z nich jako przykład. Kliknij Create.
Typowe błędy
Nazwa bazy to jedno słowo z arkusza, z zachowaniem wielkości liter (np. gryTowarzyskie w INF.03-07-26.06-SG, atlas_drzew w INF.03-11-26.06-SG). Literówka w nazwie wychodzi dopiero w skrypcie PHP - mysqli_connect nie znajdzie bazy. Porównywanie wybierz z listy (wpisanie pierwszych liter, np. utf8_po, przewija listę), a nie zostawiaj pustego pola - wtedy baza dostanie domyślne porównywanie serwera, a nie to z polecenia.
Zrzut ekranu po tym kroku
Krok 3: Pusta baza jest gotowa
ok. 1 min
phpMyAdmin od razu przechodzi do nowej bazy: na górze widać Database: opony, a w drzewie po lewej pojawia się opony - na razie bez tabel. To ważne: baza jest teraz zaznaczona, więc import trafi właśnie do niej.
Zrzut ekranu po tym kroku
Etap 2: Import pliku .sql
Kroki 4-10
Krok 4: Zakładka Import
ok. 1 min
Przy zaznaczonej bazie opony kliknij zakładkę Import. Nagłówek musi brzmieć Importowanie do bazy danych "opony". Kliknij Wybierz plik.
Typowe błędy
Jeśli nagłówek brzmi „Importowanie do bieżącego serwera”, żadna baza nie jest zaznaczona - najpierw kliknij nazwę bazy w drzewie po lewej. Co się dzieje w przeciwnym razie, pokazuje część „Gdy coś pójdzie nie tak”.
Zrzut ekranu po tym kroku
Krok 5: Plik .sql z rozpakowanego archiwum
ok. 1 min
Przejdź do folderu, do którego rozpakowano archiwum z arkusza (tu pliki8 na pulpicie), zaznacz plik .sql (tu opona.sql) i kliknij Otwórz. Plik ma rozszerzenie .sql i typ „Plik SQL” - to zwykły tekst z poleceniami CREATE TABLE i INSERT INTO.
Typowe błędy
Archiwum .7z z arkusza trzeba najpierw rozpakować (hasło jest w treści zadania). phpMyAdmin nie zaimportuje pliku z wnętrza archiwum 7z.
Zrzut ekranu po tym kroku
Krok 6: Zestaw znaków pliku: utf-8
ok. 1 min
Obok przycisku widać nazwę wybranego pliku. Pole Character set of the file zostaw na utf-8 - pliki z arkuszy INF.03 są zapisane w UTF-8 i tylko przy tym ustawieniu polskie litery z danych trafią do bazy poprawnie.
Zrzut ekranu po tym kroku
Krok 7: Przycisk Import
ok. 1 min
Resztę opcji zostaw domyślną: format SQL, włączone Enable foreign key checks. Przewiń stronę na sam dół i kliknij Import.
Zrzut ekranu po tym kroku
Krok 8: Import zakończony sukcesem
ok. 1 min
Zielony pasek „Import zakończony sukcesem, wykonano 24 zapytań. (opona.sql)” i nowe tabele w drzewie po lewej (klient, opony, zamowienie) to dowód poprawnego importu. Pod paskiem phpMyAdmin wypisuje każde wykonane zapytanie. Właśnie ten widok arkusze każą udokumentować zrzutem import - jak go zrobić, opisuje tutorial o zrzutach.
Typowe błędy
Liczba zapytań zależy od pliku - w innym arkuszu będzie inna. Ważne, żeby nie było czerwonego paska Error.
Zrzut ekranu po tym kroku
Krok 9: Kontrola: tabele i liczba rekordów
ok. 1 min
Kliknij nazwę bazy w drzewie. Zakładka Structure pokazuje tabele z liczbą rekordów (tu 9, 27 i 325) i porównywaniem napisów każdej tabeli (utf8_polish_ci). Porównywanie tabel pochodzi z pliku .sql - polecenia CREATE TABLE zawierają własne COLLATE, więc tabele dostają zestaw z dumpu, a nie ten wybrany przy tworzeniu bazy.
Typowe błędy
Liczby rekordów w kolumnie Rekordy dla tabel InnoDB bywają przybliżone. Dokładną liczbę pokaże Browse albo zapytanie SELECT COUNT(*) FROM tabela;.
Zrzut ekranu po tym kroku
Krok 10: Kontrola: polskie litery w danych
ok. 1 min
Kliknij tabelę z polskimi znakami (tu klient) - otworzy się zakładka Browse. Rekord 7 to Elżbieta Kościow: litery ż i ś wyglądają poprawnie, czyli plik został wczytany z właściwym zestawem znaków.
Zrzut ekranu po tym kroku
Etap 3: Gdy coś pójdzie nie tak
Kroki 11-21
Krok 11: Pułapka 1: import bez zaznaczonej bazy
ok. 1 min
Gdy przed kliknięciem Import żadna baza nie jest zaznaczona (np. po kliknięciu logo phpMyAdmin albo ikony domku), zakładka importuje do bieżącego serwera. Nagłówek brzmi wtedy „Importowanie do bieżącego serwera”.
Zrzut ekranu po tym kroku
Krok 12: Błąd #1046 - Nie wybrano żadnej bazy danych
ok. 1 min
Plik z arkusza nie zawiera polecenia USE, więc serwer nie wie, w której bazie utworzyć tabele, i przerywa import komunikatem #1046 - Nie wybrano żadnej bazy danych. Żadna tabela nie powstała. Kliknij bazę w drzewie, otwórz Import jeszcze raz i wybierz plik ponownie.
Typowe błędy
Zielony pasek nad błędem pochodzi z wcześniejszego importu w tej samej sesji - o wyniku tego importu decyduje czerwony blok Error. Wycinek pliku w komunikacie („Baza danych: oponeum”) to tylko komentarz z dumpu, a nie nazwa, której masz użyć - nazwę bazy podaje treść arkusza.
Zrzut ekranu po tym kroku
Krok 13: Pułapka 2: zaznaczona zła baza
ok. 1 min
Druga pomyłka jest cicha: jeśli w drzewie zaznaczona jest inna baza (tu test), nagłówek importu brzmi „Importowanie do bazy danych "test"”. Zanim klikniesz Import, zawsze przeczytaj ten nagłówek.
Zrzut ekranu po tym kroku
Krok 14: Tabele wylądowały w bazie test
ok. 1 min
Import kończy się sukcesem, ale tabele klient, opony i zamowienie są w bazie test, a baza opony z arkusza zostaje pusta. Zrzut import z takim widokiem nie pokazuje importu do bazy z arkusza, a zapytania wykonane na bazie opony nic nie zwrócą.
Typowe błędy
Najprostsza naprawa: zaimportuj plik jeszcze raz - tym razem do właściwej bazy - a z bazy test usuń przypadkowe tabele (kolejne kroki).
Zrzut ekranu po tym kroku
Krok 15: Usuwanie tabel z niewłaściwej bazy
ok. 2 min
W bazie test kliknij Check all, a z listy Z zaznaczonymi wybierz Drop. phpMyAdmin pyta, czy wykonać DROP TABLE dla zaznaczonych tabel - pole Enable foreign key checks jest zaznaczone.
Zrzut ekranu po tym kroku
Krok 16: Błąd #1451 przy usuwaniu
ok. 1 min
Przy włączonym sprawdzaniu kluczy obcych serwer odmawia: #1451 - Cannot delete or update a parent row: a foreign key constraint fails. Tabela zamowienie wskazuje na klient i opony, więc tych dwóch nie wolno usunąć, dopóki istnieje relacja. Usunięta została tylko zamowienie - w bazie zostały klient i opony.
Zrzut ekranu po tym kroku
Krok 17: Usunięcie bez sprawdzania kluczy obcych
ok. 1 min
Zaznacz pozostałe tabele i znowu wybierz Drop. Tym razem odznacz Enable foreign key checks i kliknij Tak. Tabele znikną, a baza test znów będzie pusta.
Typowe błędy
Wyłączaj sprawdzanie kluczy tylko przy sprzątaniu po pomyłce. Przy imporcie pliku z arkusza zostaw je włączone.
Zrzut ekranu po tym kroku
Krok 18: Pułapka 3: dump z CREATE DATABASE i USE
ok. 2 min
Część plików z arkuszy zawiera własne CREATE DATABASE i USE. Tak jest w fotografia.sql z arkusza INF.03-05-25.06-SG. Tu baza została założona pod nazwą fotografie (z literówką) i plik zaimportowano do niej. Import kończy się sukcesem, ale w drzewie widać dwie bazy: pustą fotografie i nową fotografia z tabelami zamowienia i zdjecia.
Zrzut ekranu po tym kroku
Krok 19: Zajrzyj do pliku przed importem
ok. 1 min
Otwórz plik .sql w Notatniku i poszukaj na początku wierszy CREATE DATABASE i USE. W fotografia.sql są to CREATE DATABASE IF NOT EXISTS z nazwą fotografia oraz USE z tą samą nazwą. Polecenie USE przełącza import na bazę z pliku, niezależnie od tego, która była zaznaczona.
Typowe błędy
Gdy plik ma CREATE DATABASE z tą samą nazwą co w arkuszu, nic złego się nie dzieje - baza i tak trafia pod właściwą nazwę. Kłopot pojawia się tylko przy literówce w nazwie Twojej bazy: dostajesz dwie bazy, a zapytania i skrypt PHP działają na tej z pliku. Usuń wtedy pustą bazę z literówką, żeby zrzut import był jednoznaczny.
Zrzut ekranu po tym kroku
Krok 20: Pułapka 4: zły zestaw znaków pliku
ok. 1 min
W polu Character set of the file lista zawiera wiele kodowań. Tu przez pomyłkę wybrano windows-1250 (polska strona kodowa Windows), choć plik jest w UTF-8.
Zrzut ekranu po tym kroku
Krok 21: Krzaki zamiast polskich liter
ok. 1 min
Import przechodzi bez błędu, ale dane są zepsute: zamiast „Elżbieta Kościow” w tabeli klient jest „ElĹĽbieta KoĹ›ciow”. Tych krzaków nie naprawi skrypt PHP ani znacznik meta - są zapisane w bazie. Usuń tabele (albo całą bazę) i zaimportuj plik jeszcze raz z ustawieniem utf-8.
Typowe błędy
Sprawdzaj polskie litery w jednej tabeli zaraz po imporcie (Browse). Krzaki zauważone dopiero na gotowej stronie kuszą, żeby szukać błędu w PHP, a winny jest import.