MariaDB adatbázis-kiszolgáló telepítése AlmaLinux 9 és 10 rendszerre

Linux 3 perc olvasás

A MariaDB a MySQL-ből indult, vele nagyrészt kompatibilis, nyílt forráskódú adatbázis-kiszolgáló; a WordPress és a legtöbb PHP-alkalmazás változtatás nélkül használja. Ez a cikk egy vezérlőpult nélküli VPS-re telepíti, a webszerverrel együtt az Apache és PHP-FPM telepítése cikkel alkot teljes LAMP környezetet.

A lépéseket 2026 októberében AlmaLinux 9.8 és 10.2 rendszeren próbáltuk ki. A parancsokat egy sudo joggal rendelkező felhasználóval futtassa.

1. Melyik verzió?

Rendszer Alapértelmezett Más verziók a rendszer tárolójában
AlmaLinux 10 MariaDB 10.11 MariaDB 11.8 (mariadb11.8-server csomag)
AlmaLinux 9 MariaDB 10.5 MariaDB 10.11 és 11.8 modulként

AlmaLinux 9-en az alapértelmezett 10.5-ös ágat a MariaDB fejlesztői már nem támogatják, ezért ott válasszon modult. A 10.11 és a 11.8 egyaránt hosszú támogatású (LTS) kiadás; új telepítéshez a 11.8 a frissebb.

AlmaLinux 9-en a modul kiválasztása:

sudo dnf module enable mariadb:11.8

2. Telepítés és indítás

sudo dnf install mariadb-server
sudo systemctl enable --now mariadb

AlmaLinux 10-en a 11.8-hoz a csomag neve mariadb11.8-server. A teszten AlmaLinux 9-en a modulból a mariadb-server-11.8.8 települt.

Ellenőrzés:

sudo mariadb -e "SELECT VERSION();"

3. A root felhasználó: jelszó helyett unix socket

A MariaDB root felhasználója a 10.4-es verzió óta jelszó nélkül, a rendszer root jogosultságával lép be: a sudo mariadb működik, sima felhasználóként a mariadb -u root viszont ezt adja:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Ez így biztonságos és kényelmes: az adatbázis root fiókjához nem kell jelszót tárolni, és kívülről nem lehet vele belépni. Ne állítson be neki jelszót csak azért, hogy egy alkalmazás root-ként csatlakozhasson; az alkalmazásoknak saját felhasználót hozzon létre (lásd az 5. pontot).

4. Biztonsági alapbeállítás

sudo mariadb-secure-installation

(A régi mysql_secure_installation név is működik.) A szkript kérdéseire a teszten így válaszoltunk:

Kérdés Javasolt válasz
Enter current password for root Enter (nincs jelszó)
Switch to unix_socket authentication n (már így működik)
Change the root password? n
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database and access to it? Y
Reload privilege tables now? Y

A végén az All done! üzenet jelenik meg.

5. Adatbázis és felhasználó létrehozása

Minden alkalmazásnak (például minden WordPress-oldalnak) hozzon létre külön adatbázist és felhasználót, csak a saját adatbázisához adott joggal:

sudo mariadb
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'Hosszu-Egyedi-Jelszo';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Próba az új felhasználóval:

mariadb -u wpuser -p -e "SELECT CURRENT_USER(); SHOW DATABASES;"

A teszten a felhasználó csak az information_schema és a saját wordpress adatbázisát látta.

6. Ne legyen elérhető kívülről

A teszten a MariaDB telepítés után minden hálózati felületen figyelt (ss -tlnp szerint 0.0.0.0:3306), vagyis tűzfal nélkül az internetről is próbálkozni lehetett volna vele. Ha az adatbázist csak ugyanazon a szerveren futó alkalmazás használja (ez a jellemző eset), korlátozza a helyi címre. A /etc/my.cnf.d/mariadb-server.cnf fájl [mysqld] szakaszába:

bind-address = 127.0.0.1
sudo systemctl restart mariadb
sudo ss -tlnp | grep 3306

A teszten utána csak 127.0.0.1:3306 maradt. Ha a szerveren fut a firewalld, a 3306-os portot ne nyissa meg; távoli eléréshez inkább SSH-alagutat használjon.

7. Memória

Az InnoDB gyorsítótárának mérete (innodb_buffer_pool_size) alapból 128 MB. Ha az adatbázis nagyobb, és a szerveren van szabad memória, növelje meg a /etc/my.cnf.d/mariadb-server.cnf fájl [mysqld] szakaszában (például innodb_buffer_pool_size = 512M). Ha a webszerver is ugyanazon a gépen fut, a teljes memória legfeljebb 40-50%-át adja neki, különben az OOM killer állíthatja le az adatbázist (lásd: Elfogyott a memória: OOM killer és swap fájl).

Mentés

sudo mariadb-dump --single-transaction wordpress > wordpress-$(date +%F).sql

A mentésekről és a visszaállításról a Hogyan lehet adatokat menteni és visszaállítani a Linux rendszeren? cikk ír bővebben.

Hasznos parancsok

Parancs Mit csinál
sudo systemctl status mariadb fut-e a szolgáltatás
sudo systemctl restart mariadb újraindítás (pl. beállítás módosítása után)
sudo journalctl -u mariadb a szolgáltatás naplója
sudo mariadb belépés root-ként
mariadb -u felhasznalo -p adatbazis belépés egy alkalmazás felhasználójával

Ha nem szeretne adatbázis-kiszolgálót üzemeltetni, a cPanel tárhelyeken az adatbázisokat felületen hozhatja létre (lásd: MySQL adatbázisok és felhasználók létrehozása cPanel tárhelyen), saját KVM VPS-en pedig a fenti lépésekkel telepítheti.

Vissza: Linux leírások (62)