SQL od podstaw · część 05

Przygotuj środowisko SQL

Rozpoznaj silnik, uruchom potrzebne usługi i sprawdź połączenie. Nazwa przycisku w panelu nie zastępuje informacji zwróconej przez serwer.

Część bazodanowa INF.03

Co właściwie trzeba uruchomić?

Do wykonywania zapytań w MariaDB potrzebujesz działającego serwera bazy oraz klienta. Jeśli klientem jest phpMyAdmin, dodatkowo potrzebujesz serwera WWW i PHP. phpMyAdmin jest aplikacją internetową, która przekazuje zapytania do SZBD — nie przechowuje samodzielnie tabel zamiast MariaDB.

XAMPP dostarcza zestaw komponentów przydatnych do lokalnych ćwiczeń. Apache Friends wyjaśnia, że współczesne pakiety XAMPP zawierają MariaDB zamiast MySQL, mimo historycznych nazw narzędzi. Nie utożsamiaj numeru wersji PHP, klienta, phpMyAdmin i serwera bazy — każdy opisuje inny komponent.

Instalacja i pierwsze uruchomienie

  1. Sprawdź system operacyjny, architekturę procesora, wymagania używanej wersji i wyposażenie wskazane dla egzaminu. Pobierz instalator z oficjalnej strony producenta.
  2. Jeżeli środowisko już istnieje, najpierw sprawdź jego wersje i dane. Nie instaluj nowego pakietu na istniejącej bazie bez kopii i planu migracji.
  3. Uruchom menedżer XAMPP. Do phpMyAdmin potrzebne są Apache i usługa bazy, często podpisana MySQL. FTP nie jest potrzebne do tych ćwiczeń.
  4. Otwórz http://localhost/, a następnie http://localhost/phpmyadmin/. Jeśli używasz innego portu, uwzględnij go w adresie.
  5. Na stronie głównej phpMyAdmin odczytaj typ i wersję serwera, wersję PHP i klienta. Zapisz te informacje razem z wynikami ćwiczenia.

localhost oznacza komputer, na którym działa klient. Na innym komputerze ten sam adres nie prowadzi do Twojego serwera. Również localhost i 127.0.0.1 mogą wybrać inny sposób połączenia klienta z bazą: gniazdo lokalne albo TCP.

Pierwszy test, który niczego nie zmienia

W phpMyAdmin wybierz zakładkę SQL i wykonaj:

SELECT VERSION() AS wersja_serwera,
       5/2 AS wynik_dzielenia,
       CONCAT('A', NULL) AS tekst_z_null;

Ten SELECT nie odczytuje tabel użytkownika i nie modyfikuje danych. Na środowisku użytym do przygotowania kursu rzeczywiście zwrócił 10.4.28-MariaDB, 2.5000 i NULL. To zapis obserwacji z konkretnej instalacji, nie zalecenie instalowania tej historycznej wersji.

Rzeczywisty wynik w phpMyAdmin: 10.4.28-MariaDB, wynik 5/2 równy 2.5000 oraz NULL z CONCAT.
Autentyczny zrzut wykonania zapytania w lokalnym MariaDB, przycięty do zapytania i wyniku. Kliknij, aby powiększyć.

Wersja serwera została też potwierdzona na stronie głównej phpMyAdmin. Apache działał jako 2.4.56, PHP jako 8.2.4, a phpMyAdmin jako 5.2.1. Twoje numery mogą być inne — to normalne. Ważne, aby dobierać dokumentację do rzeczywiście używanego silnika i wersji.

Podstawowa konfiguracja do ćwiczeń

Zapisz nazwę hosta, port lub ścieżkę gniazda, nazwę bazy, konto oraz kodowanie. Hasła przechowuj poza publiczną treścią projektu. W MySQL/MariaDB stosuj świadomie utf8mb4; nazwa kolacji określa również zasady porównywania, np. rozróżnianie wielkości liter. Ustawienia bazy, tabel i połączenia powinny być zgodne z wymaganiami.

SELECT @@character_set_connection AS kodowanie,
       @@collation_connection AS kolacja;
SELECT DATABASE() AS aktywna_baza;

Wynik NULL z DATABASE() oznacza, że nie wybrano bazy domyślnej. Zapytanie obliczające VERSION() jej nie potrzebuje, ale niekwalifikowane SELECT * FROM produkty zwykle już tak. Bazy ćwiczeniowe twórz pod nowymi, wyraźnymi nazwami. Nie używaj do zadań tabel aplikacji ani baz systemowych.

Środowisko ćwiczeń jest lokalne. Nie wystawiaj phpMyAdmin ani XAMPP do internetu dla wygody. Edytor SQL w kursie ma działać osobno, w pamięci przeglądarki, bez dostępu do Twojego XAMPP i do bazy WordPressa. Nie publikuj haseł w JavaScript.

Gdy połączenie nie działa

ObjawCo sprawdzić?
localhost nie odpowiadaCzy Apache działa, jaki ma port i czy port nie jest już zajęty. Odczytaj log błędu zamiast losowo zmieniać ustawienia.
phpMyAdmin działa, ale nie łączy się z baząStan usługi bazy, host/port/socket, konto i sposób uwierzytelnienia.
Access deniedPoprawne konto, hasło i dozwolony host. To nie jest błąd SELECT.
No database selectedWybierz swoją bazę albo użyj kwalifikowanej nazwy tabeli.
Table does not existNazwę bazy, tabeli, wielkość liter i poprawność importu.
Niepoprawne polskie znakiKodowanie pliku, połączenia oraz tabel; nie naprawiaj tego ręczną zamianą pojedynczych znaków.

Aktualizacja bez utraty danych

Przed zmianą wersji sprawdź ścieżkę aktualizacji producenta, zgodność PHP i klienta oraz zmiany SQL. Wykonaj kopię danych i konfiguracji, a następnie sprawdź jej odtworzenie w oddzielnym środowisku. Przetestuj aplikację na nowej wersji i zaplanuj powrót do poprzedniej. Sam fakt, że plik kopii istnieje, nie dowodzi, że da się go odtworzyć. Nie kopiuj na ślepo katalogu danych między różnymi wersjami SZBD.

Ten sam cel w innych środowiskach

SilnikRozpoznanie wersjiPrzykładowy klient
MySQL / MariaDBSELECT VERSION();phpMyAdmin, klient mysql/mariadb
SQL ServerSELECT @@VERSION;SQL Server Management Studio
Oracle DatabaseSELECT banner FROM v$version; — zależnie od uprawnieńSQL Developer lub SQLcl
Access / ACEInformacje o wersji Access i używanym silniku/sterowniku; nie polecenie VERSION() z MySQLAccess, widok SQL kwerendy

SQL Server i Oracle także mogą działać na komputerze lokalnym, jeśli dana platforma oraz konfiguracja są wspierane. Access może korzystać z lokalnego pliku .accdb albo tabel podłączonych do serwera. Nie przenoś instrukcji instalacji między systemami bez sprawdzenia zgodności.

Ćwiczenia i kontrola

  1. Zanotuj osobno wersję serwera bazy, PHP i phpMyAdmin. Wyjaśnij, dlaczego nie muszą mieć podobnych numerów.
  2. Wykonaj SELECT VERSION() i SELECT DATABASE(). Opisz wynik bez zgadywania nazwy silnika na podstawie etykiety usługi.
  3. Wymień trzy rzeczy, które zrobisz przed aktualizacją SZBD zawierającego ważne dane.
Odpowiedzi
  1. To niezależne komponenty: serwer wykonuje SQL, PHP uruchamia aplikację, a phpMyAdmin jest jej interfejsem.
  2. VERSION() opisuje serwer MySQL/MariaDB. DATABASE() wskazuje wybraną bazę albo NULL. Nie musi istnieć tabela, aby obliczyć te funkcje.
  3. Sprawdzę dokumentację migracji i zgodność, wykonam oraz próbnie odtworzę kopię, przetestuję aplikację i przygotuję plan wycofania zmiany.

Źródła: Apache Friends — XAMPP dla macOS, MariaDB — VERSION(). Powiązanie z INF.03.4: instalowanie, konfigurowanie i aktualizowanie SZBD. Dalej: typy danych i NULL.

Przewijanie do góry