Adminer - Adatbázis kezelő
Az Adminer (korábban phpMinAdmin) egy teljes funkcionalitású adatbázis-kezelő eszköz egyetlen PHP fájlban. A phpMyAdmin legnépszerűbb alternatívája, amely egyszerűbb, gyorsabb és biztonságosabb.
- Egyetlen fájl - ~470 KB, nincs bonyolult telepítés
- Multi-database - MySQL, PostgreSQL, SQLite, MS SQL, Oracle, MongoDB
- Biztonságosabb - A phpMyAdmin-nál jobb biztonsági megoldások
- Gyorsabb - Kevesebb erőforrásigény, jobb teljesítmény
- Magyar nyelv - Teljes magyar fordítás elérhető
Adminer vs phpMyAdmin
| Szempont | Adminer | phpMyAdmin |
|---|---|---|
| Telepítés | 1 fájl feltöltése | Komplex telepítés |
| Méret | ~470 KB | ~13 MB+ |
| Multi-DB | Igen (8+ motor) | Csak MySQL/MariaDB |
| Biztonság | Prioritás #1 | Gyakoribb sebezhetőségek |
| Felület | Letisztult, modern | Zsúfolt |
| View szerkesztés | Egyszerű, intuitív | Bonyolult |
| Sebesség | Gyorsabb | Lassabb |
Támogatott adatbázisok
| Adatbázis | Támogatás |
|---|---|
| MySQL | Natív |
| MariaDB | Natív |
| PostgreSQL | Natív |
| SQLite | Natív |
| MS SQL Server | Natív |
| Oracle | Natív |
| Elasticsearch | Natív |
| MongoDB | Natív |
Telepítés
Egyszerű telepítés
- Töltsd le az Adminer-t: adminer.org
- Nevezd át (ajánlott biztonsági okokból):
adminer.php→db-manager.php - Töltsd fel a webszerveredre
- Nyisd meg böngészőben:
https://example.com/db-manager.php
Letölthető verziók
| Verzió | Leírás | Méret |
|---|---|---|
| adminer.php | Teljes verzió (minden DB) | ~470 KB |
| adminer-mysql.php | Csak MySQL/MariaDB | ~380 KB |
| adminer-en.php | Csak angol nyelv | ~400 KB |
| adminer-mysql-en.php | MySQL + angol | ~320 KB |
WordPress mellé telepítés
Ha WordPress mellett használod, a legbiztonságosabb megoldás egy külön, védett mappába helyezni:
# Mappa struktúra
public_html/
├── wp-content/
├── wp-admin/
├── db-tools/ # Külön mappa az Adminer-nek
│ ├── adminer.php
│ └── .htaccess # Védelem
└── wp-config.php
.htaccess védelem:
# db-tools/.htaccess
AuthType Basic
AuthName "Database Tools - Restricted Access"
AuthUserFile /home/user/.htpasswd
Require valid-user
# Csak bizonyos IP-ről engedélyezés (opcionális)
# Order Deny,Allow
# Deny from all
# Allow from 192.168.1.100
.htpasswd generálás:
# Online generátor vagy parancssorból:
htpasswd -c /home/user/.htpasswd admin
Használat részletesen
Bejelentkezés
- Nyisd meg az Adminer URL-t a böngészőben
- A bejelentkezési képernyőn töltsd ki:
| Mező | Leírás | Példa |
|---|---|---|
| Rendszer | Adatbázis típusa | MySQL |
| Szerver | Adatbázis szerver címe | localhost vagy 127.0.0.1 |
| Felhasználó | DB felhasználónév | wp_user |
| Jelszó | DB jelszó | ******** |
| Adatbázis | Adatbázis neve (opcionális) | wordpress_db |
- Kattints a Belépés gombra
A WordPress adatbázis adatait a wp-config.php fájlban találod:
define('DB_NAME', 'adatbazis_neve');
define('DB_USER', 'felhasznalo');
define('DB_PASSWORD', 'jelszo');
define('DB_HOST', 'localhost');
Adatbázis műveletek
Adatbázis kiválasztása
Bejelentkezés után látod az összes elérhető adatbázist. Kattints a kívánt adatbázis nevére a megnyitáshoz.
Új adatbázis létrehozása
- A bal oldali menüben kattints az Adatbázis létrehozása linkre
- Add meg az adatbázis nevét
- Válaszd ki a karakterkészletet (ajánlott:
utf8mb4_unicode_ci) - Kattints a Mentés gombra
Adatbázis törlése
- Válaszd ki az adatbázist
- Kattints az Adatbázis eldobása linkre
- Erősítsd meg a törlést
Az adatbázis törlése visszafordíthatatlan művelet! Mindig készíts biztonsági mentést előtte.
Táblák kezelése
Táblák listázása
Az adatbázis kiválasztása után látod az összes táblát:
- Tábla neve - Kattintható, megnyitja a tábla tartalmát
- Motor - InnoDB, MyISAM stb.
- Sorok - Rekordok száma
- Méret - Tábla mérete
Új tábla létrehozása
- Kattints a Tábla létrehozása linkre
- Add meg a tábla nevét
- Definiáld az oszlopokat:
| Beállítás | Leírás |
|---|---|
| Oszlop | Oszlop neve (pl. id, name) |
| Típus | Adattípus (INT, VARCHAR, TEXT, DATETIME stb.) |
| Hossz | Maximális hossz (VARCHAR esetén) |
| NULL | Engedélyezett-e a NULL érték |
| AI | Auto Increment (automatikus növelés) |
| Alapértelmezett | Default érték |
- Állítsd be az elsődleges kulcsot (Primary Key)
- Kattints a Mentés gombra
Példa WordPress-szerű tábla:
| Oszlop | Típus | Hossz | NULL | AI | Megjegyzés |
|---|---|---|---|---|---|
id | BIGINT | 20 | Nem | Igen | Elsődleges kulcs |
title | VARCHAR | 255 | Nem | - | Cím |
content | LONGTEXT | - | Igen | - | Tartalom |
status | VARCHAR | 20 | Nem | - | Állapot |
created_at | DATETIME | - | Nem | - | Létrehozás dátuma |
Tábla szerkezetének módosítása
- Kattints a tábla nevére
- Kattints a Szerkezet módosítása linkre
- Itt tudsz:
- Új oszlopot hozzáadni
- Meglévő oszlopot módosítani
- Oszlopot törölni
- Oszlopok sorrendjét változtatni
- Kattints a Mentés gombra
Tábla átnevezése
- Kattints a Szerkezet módosítása linkre
- Írd át a tábla nevét a felső mezőben
- Kattints a Mentés gombra
Tábla törlése
- Válaszd ki a táblát
- Kattints a Tábla eldobása linkre
- Erősítsd meg
Tábla ürítése (TRUNCATE)
- Válaszd ki a táblát
- Kattints a Tábla kiürítése linkre
- Erősítsd meg
- Eldobás (DROP) - Törli a táblát és annak szerkezetét is
- Kiürítés (TRUNCATE) - Csak az adatokat törli, a szerkezet megmarad, az AUTO_INCREMENT nullázódik
Adatok kezelése
Adatok megtekintése
- Kattints a tábla nevére
- Megjelenik az összes rekord táblázatos formában
- Használd a lapozást nagy táblák esetén
Adatok szűrése
A tábla megtekintésekor a Szűrés gombbal tudsz keresni:
- Válaszd ki az oszlopot
- Válaszd ki az operátort (
=,LIKE,>,<,INstb.) - Add meg az értéket
- Kattints a Szűrés gombra
Gyakori szűrési példák:
| Cél | Oszlop | Operátor | Érték |
|---|---|---|---|
| Publikált bejegyzések | post_status | = | publish |
| Cím tartalmazza | post_title | LIKE | %wordpress% |
| 2024 után létrehozott | post_date | > | 2024-01-01 |
| Adott szerző | post_author | = | 1 |
Adatok rendezése
Kattints az oszlop fejlécére a rendezéshez:
- Első kattintás: növekvő sorrend (ASC)
- Második kattintás: csökkenő sorrend (DESC)
Új rekord hozzáadása
- Kattints az Új elem linkre
- Töltsd ki a mezőket
- Kattints a Mentés gombra
Rekord szerkesztése
- Kattints a rekord mellett a szerkesztés linkre
- Módosítsd a mezőket
- Kattints a Mentés gombra
Inline szerkesztés
Az Adminer támogatja a gyors, helyben történő szerkesztést:
- Dupla kattintás a cellára
- Módosítsd az értéket
- Enter a mentéshez, Escape a megszakításhoz
Rekordok törlése
Egyetlen rekord:
- Kattints a rekord mellett a törlés linkre
- Erősítsd meg
Több rekord egyszerre:
- Jelöld be a rekordokat a checkbox-szal
- Válaszd a Törlés műveletet
- Kattints a Végrehajt gombra
SQL lekérdezések futtatása
SQL parancs ablak
- Kattints az SQL parancs menüpontra
- Írd be a query-t a szövegmezőbe
- Kattints a Végrehajt gombra
Gyakori WordPress SQL lekérdezések
Publikált bejegyzések listázása:
SELECT ID, post_title, post_date, post_author
FROM wp_posts
WHERE post_type = 'post'
AND post_status = 'publish'
ORDER BY post_date DESC
LIMIT 20;
Felhasználók listázása:
SELECT u.ID, u.user_login, u.user_email, u.display_name,
m.meta_value as capabilities
FROM wp_users u
LEFT JOIN wp_usermeta m ON u.ID = m.user_id
AND m.meta_key = 'wp_capabilities'
ORDER BY u.ID;
Bejegyzések száma kategóriánként:
SELECT t.name as category, COUNT(*) as post_count
FROM wp_posts p
JOIN wp_term_relationships tr ON p.ID = tr.object_id
JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
JOIN wp_terms t ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'category'
AND p.post_status = 'publish'
GROUP BY t.term_id
ORDER BY post_count DESC;
Opciók keresése:
SELECT option_name, option_value
FROM wp_options
WHERE option_name LIKE '%siteurl%'
OR option_name LIKE '%home%';
Revíziók törlése (óvatosan!):
DELETE FROM wp_posts
WHERE post_type = 'revision';
Spam kommentek törlése:
DELETE FROM wp_comments
WHERE comment_approved = 'spam';
Tranziens adatok törlése:
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%';
SQL history
Az Adminer megjegyzi a korábban futtatott lekérdezéseket. A History linkre kattintva visszanézheted és újrafuttathatod őket.
Többsoros lekérdezések
Több SQL utasítást is futtathatsz egyszerre, pontosvesszővel elválasztva:
-- Először lekérdezés
SELECT COUNT(*) FROM wp_posts WHERE post_status = 'draft';
-- Aztán törlés
DELETE FROM wp_posts WHERE post_status = 'draft' AND post_date < '2023-01-01';
Import és Export
Adatbázis exportálása
- Válaszd ki az adatbázist
- Kattints az Exportálás linkre
- Állítsd be az opciókat:
| Beállítás | Ajánlott érték |
|---|---|
| Kimenet | mentés (fájlba) |
| Formátum | SQL |
| Adatbázis | CREATE DATABASE + USE |
| Táblák | DROP + CREATE |
| Adatok | INSERT |
- Válaszd ki az exportálandó táblákat (vagy az összeset)
- Kattints az Exportálás gombra
Csak bizonyos táblák exportálása
- Jelöld be csak a kívánt táblákat
- Futtasd az exportot
Tábla exportálása CSV formátumban
- Nyisd meg a táblát
- Kattints az Exportálás linkre
- Válaszd a CSV formátumot
- Kattints az Exportálás gombra
Adatbázis importálása
- Kattints az Importálás linkre
- Válaszd ki az SQL fájlt
- Kattints a Végrehajt gombra
Ha a fájl túl nagy, növeld a PHP beállításokat:
upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 300
memory_limit = 512M
Vagy használd a Fájl futtatása opciót, ami a szerveren lévő fájlt importálja.
CSV importálása
- Válaszd ki a céltáblát
- Kattints az Importálás linkre
- Válaszd ki a CSV fájlt
- Állítsd be az oszlop megfeleltetéseket
- Kattints a Végrehajt gombra
Indexek kezelése
Indexek megtekintése
- Nyisd meg a táblát
- Kattints a Szerkezet módosítása linkre
- Az indexek a tábla alatt láthatók
Új index létrehozása
- A Szerkezet módosítása oldalon
- Az Indexek szekcióban kattints az Index hozzáadása linkre
- Válaszd ki:
- Típus: INDEX, UNIQUE, PRIMARY, FULLTEXT
- Oszlopok: melyik oszlop(ok)ra
- Kattints a Mentés gombra
Index típusok
| Típus | Használat |
|---|---|
| PRIMARY | Elsődleges kulcs, egyedi, nem NULL |
| UNIQUE | Egyedi értékek, de lehet NULL |
| INDEX | Gyorsítja a keresést |
| FULLTEXT | Szöveges kereséshez (TEXT oszlopokra) |
View-k kezelése
View létrehozása
- Kattints a View létrehozása linkre
- Add meg a view nevét
- Írd be a SELECT lekérdezést:
SELECT p.ID, p.post_title, u.display_name as author
FROM wp_posts p
JOIN wp_users u ON p.post_author = u.ID
WHERE p.post_status = 'publish'
- Kattints a Mentés gombra
View szerkesztése
- Kattints a view nevére
- Kattints a Szerkezet módosítása linkre
- Módosítsd a lekérdezést
- Mentsd el
Stored Procedures és Triggers
Tárolt eljárás létrehozása
- Kattints az Eljárás létrehozása linkre
- Add meg a nevet és a paramétereket
- Írd be az SQL kódot:
CREATE PROCEDURE GetPublishedPosts(IN limit_count INT)
BEGIN
SELECT ID, post_title, post_date
FROM wp_posts
WHERE post_status = 'publish'
ORDER BY post_date DESC
LIMIT limit_count;
END
Trigger létrehozása
- Válaszd ki a táblát
- Kattints a Trigger létrehozása linkre
- Állítsd be:
- Név: trigger neve
- Időzítés: BEFORE vagy AFTER
- Esemény: INSERT, UPDATE, DELETE
- Írd be a trigger kódját
Felhasználók és jogosultságok
Felhasználók listázása
- Kattints a Jogosultságok linkre
- Látod az összes adatbázis felhasználót
Új felhasználó létrehozása
- Kattints a Felhasználó létrehozása linkre
- Add meg:
- Felhasználónév
- Host (
localhostvagy%) - Jelszó
- Állítsd be a jogosultságokat
- Mentsd el
Jogosultságok beállítása
Elérhető jogosultságok:
| Jogosultság | Leírás |
|---|---|
| SELECT | Adatok olvasása |
| INSERT | Új rekordok |
| UPDATE | Módosítás |
| DELETE | Törlés |
| CREATE | Táblák létrehozása |
| DROP | Táblák törlése |
| ALL PRIVILEGES | Minden jog |
Témák és testreszabás
CSS téma használata
- Töltsd le a kívánt témát
- Nevezd el
adminer.css-nek - Tedd az
adminer.phpmellé
Népszerű témák
| Téma | Leírás |
|---|---|
| Hydra Dark | Sötét téma |
| Material Design | Material stílus |
| Dracula | Dracula színséma |
| One Dark | Atom One Dark |
Hivatalos témák
Az Adminer hivatalos témái: adminer.org/designs
Pluginek
Plugin rendszer
Az Adminer bővíthető pluginekkel. Használathoz készíts egy wrapper fájlt:
<?php
// db-manager.php
function adminer_object() {
// Pluginek betöltése
include_once "./plugins/plugin.php";
// Login szerverek plugin
include_once "./plugins/login-servers.php";
return new AdminerPlugin([
new AdminerLoginServers([
'Localhost' => [
'server' => 'localhost',
'driver' => 'mysql'
],
'Production' => [
'server' => 'db.example.com',
'driver' => 'mysql'
],
])
]);
}
include "./adminer.php";
Hasznos pluginek
| Plugin | Funkció |
|---|---|
| login-servers | Előre definiált szerverek |
| designs | Téma választó |
| dump-alter | ALTER utasítások exportálása |
| edit-calendar | Dátum választó |
| enum-option | ENUM értékek legördülő listában |
| foreign-system | Külső kulcs megjelenítés |
| tables-filter | Tábla szűrő |
Biztonsági tippek
Az Adminer közvetlen hozzáférést biztosít az adatbázishoz. Védd meg megfelelően!
Ajánlott védelmi intézkedések
-
Használj nehezen kitalálható fájlnevet
❌ adminer.php
✅ db-xyz123-manager.php -
Tedd védett mappába
/db-tools/adminer.php + .htaccess védelem -
HTTP Basic Authentication
AuthType Basic
AuthName "Restricted"
AuthUserFile /path/.htpasswd
Require valid-user -
IP korlátozás
<Files "adminer.php">
Order Deny,Allow
Deny from all
Allow from 192.168.1.100
</Files> -
HTTPS kötelező használata
-
Töröld, ha nem használod
- Ne hagyd a szerveren, ha befejeztél
-
Erős adatbázis jelszavak
- Legalább 16 karakter
- Vegyes karakterek
Automatikus törlés
Készíts egy cron job-ot, ami törli az Adminer-t egy idő után:
# 1 óra múlva törlés
echo "rm /var/www/html/db-tools/adminer.php" | at now + 1 hour
Hibakeresés
Gyakori hibák
"Login without password is forbidden"
- Az Adminer nem enged üres jelszót
- Megoldás: állíts be jelszót az adatbázis usernek
"Access denied for user"
- Hibás felhasználónév vagy jelszó
- Ellenőrizd a
wp-config.phpfájlt
"Connection refused"
- A szerver nem érhető el
- Ellenőrizd a host nevet (
localhostvs127.0.0.1)
"Maximum execution time exceeded"
- Nagy művelet időtúllépés
- Növeld a
max_execution_timeértéket
Karakter kódolási problémák
- Használj
utf8mb4karakterkészletet - Ellenőrizd az export/import beállításokat
Kapcsolódó eszközök
- Query Monitor - WordPress debug
- WP-CLI - Parancssoros WordPress kezelés
- Debug Bar - Debug információk