Problemy z konfiguracją serwera baz danych (MySQL, PostgreSQL): Błędy logowania, uprawnień użytkowników i konfiguracji serwera
Linux

Problemy z konfiguracją serwera baz danych (MySQL, PostgreSQL): Błędy logowania, uprawnień użytkowników i konfiguracji serwera

Problemy z konfiguracją serwera baz danych (MySQL, PostgreSQL): Błędy logowania, uprawnień użytkowników i konfiguracji serwera


📘 Wprowadzenie

Prawidłowa konfiguracja serwera baz danych, takiego jak MySQL lub PostgreSQL, jest kluczowa dla bezpieczeństwa i wydajności aplikacji. W artykule przedstawiamy najczęstsze błędy logowania, problemy z uprawnieniami użytkowników, a także błędy konfiguracyjne, które mogą prowadzić do niedostępności bazy lub jej podatności na ataki.


🔐 Błędy logowania – najczęstsze przyczyny

MySQL

❌ Błąd: ERROR 1045 (28000): Access denied for user

👉 Przyczyny:

  • Błędne hasło lub użytkownik
  • Użytkownik próbuje się zalogować z niedozwolonego hosta
  • Brak odpowiednich uprawnień (GRANT)

🛠 Rozwiązanie:
Sprawdź użytkowników:

SELECT user, host FROM mysql.user;

Zmień hasło:

ALTER USER 'user'@'localhost' IDENTIFIED BY 'NoweHaslo';

PostgreSQL

❌ Błąd: psql: FATAL: password authentication failed

👉 Przyczyny:

  • Zła metoda uwierzytelniania w pliku pg_hba.conf
  • Nieprawidłowy login/hasło

🛠 Rozwiązanie:
Edytuj /etc/postgresql/<version>/main/pg_hba.conf i ustaw:

host all all 127.0.0.1/32 md5

Zrestartuj serwer:

systemctl restart postgresql

👥 Problemy z uprawnieniami użytkowników

Problemy z konfiguracją serwera baz danych (MySQL, PostgreSQL): Błędy logowania, uprawnień użytkowników i konfiguracji serwera
Problemy z konfiguracją serwera baz danych (MySQL, PostgreSQL): Błędy logowania, uprawnień użytkowników i konfiguracji serwera

MySQL

Aby użytkownik miał dostęp do konkretnej bazy:

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

Błąd „Access denied” może też wynikać z:

  • Braku przydzielonej bazy
  • Braku GRANT OPTION

PostgreSQL

Przyznawanie uprawnień:

GRANT CONNECT ON DATABASE baza TO uzytkownik;
GRANT USAGE ON SCHEMA public TO uzytkownik;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO uzytkownik;

⚙️ Problemy konfiguracyjne serwera

MySQL

📁 Plik konfiguracyjny:

/etc/mysql/my.cnf lub /etc/my.cnf

Typowe problemy:

  • Zła lokalizacja datadir
  • Niewystarczające limity max_connections, innodb_buffer_pool_size
  • Brak bind-address ustawionego na 0.0.0.0 (jeśli potrzebny dostęp zdalny)
[mysqld]
bind-address = 0.0.0.0
max_connections = 200

PostgreSQL

📁 Pliki:

  • postgresql.conf
  • pg_hba.conf

Typowe problemy:

  • listen_addresses nie zawiera * lub konkretnego IP
  • Zbyt restrykcyjne ustawienia max_connections, work_mem, shared_buffers
listen_addresses = '*'
max_connections = 100
shared_buffers = 256MB

🔍 Diagnozowanie problemów

🔧 Komendy administracyjne:

  • MySQL:
mysqladmin -u root -p ping
systemctl status mysql
  • PostgreSQL:
pg_isready
systemctl status postgresql

📄 Logi błędów:

  • MySQL: /var/log/mysql/error.log
  • PostgreSQL: /var/log/postgresql/postgresql-<version>-main.log

💡 Dobre praktyki konfiguracyjne

✔️ Twórz użytkowników z ograniczonymi uprawnieniami
✔️ Zmieniaj port serwera (np. z 5432 na inny w PostgreSQL)
✔️ Używaj uwierzytelniania hasłem i SSL
✔️ Regularnie wykonuj backupy (mysqldump, pg_dump)
✔️ Monitoruj obciążenie i wykorzystanie zasobów

Czytaj  Jak sprawdzić, co zajmuje miejsce na dysku w systemie Linux

📋 Przykładowe błędy i rozwiązania

Problem System Rozwiązanie
Błąd logowania MySQL Sprawdź mysql.user, zmień hasło
Błąd logowania PostgreSQL Zmień pg_hba.conf, użyj md5
Brak połączenia zdalnego MySQL Ustaw bind-address = 0.0.0.0
Brak dostępu do tabel PostgreSQL Użyj GRANT na schemacie i tabelach
Serwer nie startuje Oba Sprawdź logi błędów, zweryfikuj port

🧰 Narzędzia pomocnicze

  • mysql_secure_installation
  • psql – klient PostgreSQL
  • adminer, phpMyAdmin – GUI do zarządzania bazami
  • pgAdmin – interfejs dla PostgreSQL

🔚 Podsumowanie

Konfiguracja serwera baz danych wymaga staranności, znajomości systemu uprawnień i zasad działania silnika bazy. Błędy w logowaniu, brak dostępu do danych lub nieprawidłowe ustawienia sieciowe to najczęstsze problemy, które można zdiagnozować poprzez analizę logów, plików konfiguracyjnych oraz testowanie poleceń administracyjnych.

 

Polecane wpisy
Jak automatyzować zadania w Linuxie (cron)?
Jak automatyzować zadania w Linuxie (cron)?

Jak automatyzować zadania w Linuxie (cron)? W systemach Linux automatyzacja zadań to jeden z kluczowych elementów, który pomaga administratorom systemów, Czytaj dalej

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?
Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić? W tym poradniku dowiesz się: ✅ jak uruchomić Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.