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.