Jak zainstalować i skonfigurować serwer MySQL na Ubuntu Server 24.04 LTS?

  • Home
  • Jak zainstalować i skonfigurować serwer MySQL na Ubuntu Server 24.04 LTS?
Autor: TS 20 stycznia, 2026 0 Comments

Jak zainstalować i skonfigurować serwer MySQL na Ubuntu Server 24.04 LTS ?

MySQL to jeden z najpopularniejszych systemów zarządzania relacyjnymi bazami danych (RDBMS) na świecie. Jest to rozwiązanie open-source, które doskonale sprawdza się zarówno w małych projektach, jak i dużych aplikacjach korporacyjnych. W tym artykule przeprowadzę Cię przez proces instalacji i konfiguracji serwera MySQL na Ubuntu Server 24.04 LTS.

Krok 1: Aktualizacja systemu

Zacznij od zaktualizowania listy pakietów i systemu:

sudo apt update
sudo apt upgrade

Krok 2: Instalacja serwera MySQL

Zainstaluj serwer MySQL za pomocą menedżera pakietów APT:

sudo apt install mysql-server

Po zakończeniu instalacji usługa MySQL powinna uruchomić się automatycznie. Możesz sprawdzić status usługi:

sudo systemctl status mysql

Jeśli usługa nie jest uruchomiona, włącz ją:

sudo systemctl start mysql
sudo systemctl enable mysql

Krok 3: Zabezpieczenie instalacji MySQL

MySQL dostarcza skrypt zabezpieczający, który pomoże Ci wzmocnić bezpieczeństwo instalacji. Uruchom:

sudo mysql_secure_installation

Skrypt przeprowadzi Cię przez kilka kroków:

  • VALIDATE PASSWORD COMPONENT – możesz włączyć komponent walidacji haseł, który wymusza silne hasła
  • Ustawienie hasła root – ustaw silne hasło dla użytkownika root
  • Usunięcie anonimowych użytkowników – zalecane: TAK
  • Wyłączenie zdalnego logowania root – zalecane: TAK
  • Usunięcie testowej bazy danych – zalecane: TAK
  • Przeładowanie tablic uprawnień – zalecane: TAK

Krok 4: Logowanie do MySQL

Zaloguj się do konsoli MySQL jako użytkownik root:

sudo mysql -u root

Uwaga: Hasło nie jest wymagane, ponieważ MySQL domyślnie uwierzytelnia użytkownika root za pomocą wtyczki auth_socket.

Krok 5: Podstawowa konfiguracja

Tworzenie nowego użytkownika

Dla bezpieczeństwa zaleca się tworzenie dedykowanych użytkowników zamiast używania konta root:

CREATE USER 'nazwa_uzytkownika'@'localhost' IDENTIFIED BY 'silne_haslo';

Przykłady konfiguracji dostępu dla użytkowników

1. Dostęp tylko lokalny:

CREATE USER 'jan'@'localhost' IDENTIFIED BY 'silne_haslo';

Użytkownik jan może się łączyć tylko z tego samego serwera.

2. Dostęp z konkretnego IP:

CREATE USER 'jan'@'192.168.1.50' IDENTIFIED BY 'silne_haslo';

Użytkownik jan może się łączyć tylko z komputera o IP 192.168.1.50.

3. Dostęp z całej podsieci (wildcard %):

CREATE USER 'jan'@'192.168.1.%' IDENTIFIED BY 'silne_haslo';

Użytkownik jan może się łączyć z dowolnego komputera w podsieci 192.168.1.x
Czyli z adresów: 192.168.1.1, 192.168.1.2, 192.168.1.100, itd.

4. Dostęp z dowolnego miejsca (niezalecane!):

CREATE USER 'jan'@'%' IDENTIFIED BY 'silne_haslo';

Użytkownik jan może się łączyć z dowolnego miejsca w internecie.
Bardzo niebezpieczne!

Tworzenie bazy danych

CREATE DATABASE nazwa_bazy;

Nadawanie uprawnień

Uprawnienia na poziomie bazy danych

Nadaj użytkownikowi uprawnienia do konkretnej bazy danych:

GRANT ALL PRIVILEGES ON nazwa_bazy.* TO 'nazwa_uzytkownika'@'localhost';

Lub dla połączeń zdalnych:

GRANT ALL PRIVILEGES ON nazwa_bazy.* TO 'nazwa_uzytkownika'@'x.x.x.%';

Uprawnienia globalne (dla backupów i administracji)

Dla użytkowników wykonujących backupy lub zadania administracyjne, nadaj uprawnienia globalne:

-- Minimalne uprawnienia do backupu
GRANT SELECT, LOCK TABLES, SHOW VIEW, PROCESS ON *.* TO 'nazwa_uzytkownika'@'localhost';

-- Rozszerzone uprawnienia do backupu (zalecane)
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER, PROCESS, RELOAD ON *.* TO 'nazwa_uzytkownika'@'localhost';

-- Pełne uprawnienia administracyjne
GRANT ALL PRIVILEGES ON *.* TO 'nazwa_uzytkownika'@'localhost' WITH GRANT OPTION;

Przeładowanie uprawnień

Po nadaniu uprawnień, przeładuj je:

FLUSH PRIVILEGES;

Sprawdzanie uprawnień

Sprawdź nadane uprawnienia dla użytkownika:

SHOW GRANTS FOR 'nazwa_uzytkownika'@'localhost';

Różnica między nazwa_bazy.* a *.*

  • nazwa_bazy.* – uprawnienia tylko do konkretnej bazy (NIE zawiera PROCESS, RELOAD)
  • *.* – uprawnienia globalne do wszystkich baz (zawiera uprawnienia systemowe)

Sprawdzenie użytkowników

SELECT user, host, plugin FROM mysql.user;

Wyjdź z konsoli MySQL:

EXIT;

Krok 6: Konfiguracja pliku mysqld.cnf

Główny plik konfiguracyjny MySQL znajduje się w:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Ważne parametry konfiguracyjne

Adres nasłuchiwania:

bind-address = 127.0.0.1

Zmień na 0.0.0.0, jeśli chcesz zezwolić na zdalne połączenia.

Port:

port = 3306

Po wprowadzeniu zmian zrestartuj MySQL:

sudo systemctl restart mysql

Krok 7: Konfiguracja zapory sieciowej (opcjonalnie)

Ubuntu 24.04 LTS jest dostarczane z preinstalowanym UFW (Uncomplicated Firewall) – przyjaznym interfejsem do zarządzania iptables lub nftables. Chociaż UFW jest zainstalowane, domyślnie jest wyłączone. Użytkownicy muszą ręcznie je włączyć, aby chronić swój system.

Sprawdzenie statusu

sudo ufw status

Włączanie zapory

Ważne: Jeśli korzystasz z SSH, przed włączeniem zapory upewnij się, że zezwoliłeś na połączenia SSH, aby nie zablokować sobie dostępu:

sudo ufw allow ssh

Następnie włącz zaporę:

sudo ufw enable

Dodanie portu MySQL

Jeśli chcesz zezwolić na zdalne połączenia z MySQL:

sudo ufw allow 3306/tcp
sudo ufw reload

Uwaga: Otwieranie portu MySQL dla całego internetu nie jest zalecane. Lepiej ograniczyć dostęp do konkretnych adresów IP:

sudo ufw allow from adres_ip to any port 3306

Krok 8: Testowanie połączenia

Sprawdź, czy MySQL nasłuchuje na odpowiednim porcie:

sudo ss -plunt | grep mysqld

Podsumowanie

Gratulacje! Pomyślnie zainstalowałeś i skonfigurowałeś serwer MySQL na Ubuntu Server 24.04 LTS. Twoja instalacja jest teraz zabezpieczona i gotowa do użycia. Pamiętaj o regularnym tworzeniu kopii zapasowych baz danych oraz aktualizowaniu systemu i MySQL do najnowszych wersji.

Kategorie: