Table of Contents

MySQL - Przewodnik na start

MySQL to najpopularniejsza na świecie relacyjna baza danych typu open source, wykorzystywana przez miliony aplikacji – od niewielkich stron internetowych po rozbudowane systemy klasy enterprise. Serwer jest dostarczany z w pełni skonfigurowanym MySQL 8.4 LTS oraz hasłem użytkownika root, które zostało podane podczas składania zamówienia. W zestawie znajduje się również phpMyAdmin, umożliwiający zarządzanie bazami danych z poziomu przeglądarki.


Krok 1 – Sprawdzenie działania MySQL

Adres IP serwera oraz hasło użytkownika root znajdziesz w sekcji Server Information na karcie Overview w panelu klienta. phpMyAdmin jest dostępny natychmiast po utworzeniu serwera. Otwórz w przeglądarce adres http://your.server.ip/phpmyadmin, aby sprawdzić poprawność działania.

Dane logowania do phpMyAdmin:

  • Użytkownik: root
  • Hasło: hasło użytkownika root podane podczas składania zamówienia

Za pomocą phpMyAdmin możesz tworzyć bazy danych, wykonywać zapytania SQL, importować i eksportować dane oraz zarządzać użytkownikami bez korzystania z wiersza poleceń.

Serwery baz danych nie wymagają bezpośredniego dostępu z Internetu. Dla większego bezpieczeństwa umieść serwer w sieci prywatnej za routerem VyOS i łącz się z MySQL oraz phpMyAdmin przez VPN, wykorzystując prywatny adres IP serwera.


Krok 2 – Zdalne połączenie z MySQL

MySQL jest skonfigurowany do akceptowania połączeń zdalnych. Możesz połączyć się z dowolnej aplikacji lub narzędzia:

mysql -h your.server.ip -u root -p

Parametry połączenia dla narzędzi graficznych (MySQL Workbench, DBeaver, HeidiSQL itp.):

Parametr Wartość
Hostyour.server.ip
Port3306
Użytkownikroot
HasłoHasło użytkownika root podane podczas składania zamówienia

Uwaga: Port 3306 obsługuje protokół MySQL, a nie HTTP, dlatego nie można otworzyć go w przeglądarce. Do połączenia użyj klienta bazy danych lub powyższego polecenia.


Krok 3 – Włączenie SSL dla phpMyAdmin (Opcjonalnie)

Jeżeli Twoja domena wskazuje na ten serwer, możesz włączyć HTTPS dla phpMyAdmin za pomocą bezpłatnego certyfikatu Let’s Encrypt. Połącz się przez SSH i uruchom:

ssh root@your.server.ip /opt/setup/get-ssl.sh db.yourdomain.com

Skrypt automatycznie zweryfikuje konfigurację DNS, pobierze certyfikat oraz skonfiguruje Apache. Po zakończeniu phpMyAdmin będzie dostępny pod adresem https://db.yourdomain.com/phpmyadmin.

Uwaga: Przed uruchomieniem skryptu upewnij się, że rekord A domeny wskazuje na adres IP serwera. Certyfikat SSL jest opcjonalny – phpMyAdmin działa również przez HTTP przy użyciu adresu IP.


Zarządzanie bazami danych

Tworzenie dodatkowych baz danych

Nowe bazy danych możesz tworzyć zarówno z poziomu phpMyAdmin, jak i przez SSH:

mysql -u root -p CREATE DATABASE newdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'newuser’@’%’ IDENTIFIED BY 'strong_password’; GRANT ALL PRIVILEGES ON newdb.* TO 'newuser’@’%’; FLUSH PRIVILEGES;

Import i eksport danych

Za pomocą phpMyAdmin: Skorzystaj z zakładek Import oraz Eksport. Obsługiwane są między innymi formaty SQL i CSV. Maksymalny rozmiar przesyłanego pliku wynosi 64 MB.

Z poziomu wiersza poleceń:

# Eksport mysqldump -u root -p your_database > backup.sql # Import mysql -u root -p your_database < backup.sql

W przypadku dużych baz danych (powyżej 64 MB) zaleca się korzystanie z wiersza poleceń zamiast phpMyAdmin.


Po instalacji

Fail2Ban – Ochrona przed atakami brute-force

Na serwerze jest już skonfigurowany Fail2Ban, który chroni zarówno usługę SSH, jak i phpMyAdmin przed atakami polegającymi na wielokrotnym odgadywaniu haseł.

Reguła Maksymalna liczba prób Czas blokady
SSH5 nieudanych logowań10 minut
phpMyAdmin5 nieudanych logowań1 godzina

Przydatne polecenia:

# Wyświetlenie zablokowanych adresów IP fail2ban-client status phpmyadmin fail2ban-client status sshd # Odblokowanie adresu IP fail2ban-client set phpmyadmin unbanip 1.2.3.4

Jeżeli przypadkowo zablokujesz własny adres IP, połącz się z serwerem przez konsolę VNC dostępną w panelu klienta i odblokuj swój adres.

Zarządzanie usługami

MySQL oraz usługi serwera WWW działają jako usługi systemd. Najczęściej używane polecenia:

# Sprawdzenie stanu usług systemctl status mysql systemctl status apache2 # Restart MySQL systemctl restart mysql # Wyświetlenie logów MySQL journalctl -u mysql -n 100

Optymalizacja wydajności MySQL

Pamięć InnoDB Buffer Pool jest automatycznie ustawiana podczas pierwszego uruchomienia na 50% dostępnej pamięci RAM. Aby sprawdzić bieżącą wartość:

mysql -u root -p -e „SHOW VARIABLES LIKE 'innodb_buffer_pool_size’;”

Aby zmienić ustawienia ręcznie, edytuj plik /etc/mysql/mysql.conf.d/99-tuning.cnf, a następnie uruchom ponownie usługę MySQL:

systemctl restart mysql

Dane dostępowe do serwera

Hasło użytkownika root dla MySQL jest zapisane w pliku /root/.mysql_credentials.

Wstępna konfiguracja

  • Dostęp zdalny: MySQL akceptuje połączenia z dowolnego adresu IP na porcie 3306.
  • InnoDB Buffer Pool: Automatycznie ustawiony na 50% dostępnej pamięci RAM podczas pierwszego uruchomienia.
  • Performance Schema: Wyłączony na serwerach z mniej niż 2 GB pamięci RAM w celu ograniczenia zużycia zasobów.
  • Limity PHP: Maksymalny rozmiar pliku importowanego przez phpMyAdmin wynosi 64 MB.

Zainstalowane oprogramowanie

Komponent Wersja
Ubuntu24.04 LTS
MySQL8.4 LTS (Oracle APT)
Apache2.4
PHP8.3
phpMyAdmin5.2
CertbotNajnowsza wersja
Fail2Ban1.0

Rozwiązywanie problemów

Problem Rozwiązanie
Brak możliwości zdalnego połączenia z MySQL Sprawdź, czy port 3306 nie jest blokowany przez zaporę sieciową. Upewnij się również, że użytkownik ma przypisanego hosta '%’, a nie tylko 'localhost’.
Błąd logowania do phpMyAdmin Sprawdź poprawność hasła użytkownika MySQL. Dane użytkownika root znajdują się w pliku /root/.mysql_credentials.
Import w phpMyAdmin kończy się błędem (zbyt duży plik) Maksymalny rozmiar przesyłanego pliku wynosi 64 MB. Większe kopie zapasowe importuj przez SSH za pomocą polecenia mysql -u root -p dbname < file.sql.
MySQL nie uruchamia się Sprawdź logi: journalctl -u mysql -n 50. Najczęstszą przyczyną jest brak wolnego miejsca na dysku. Zweryfikuj to poleceniem df -h /.
Nie pamiętasz hasła użytkownika root Połącz się z serwerem przez SSH i sprawdź zawartość pliku /root/.mysql_credentials.
Adres IP został zablokowany przez Fail2Ban Połącz się z serwerem przez konsolę VNC dostępną w panelu klienta i odblokuj swój adres IP.
Nie pamiętasz hasła użytkownika root systemu Skorzystaj z konsoli VNC dostępnej w panelu klienta, aby zresetować hasło.