Adminer: встановлення та безпечна робота з базами даних

Adminer — інструмент для керування базами даних через браузер. На відміну від phpMyAdmin, він складається з одного PHP-файлу, не потребує налаштування й працює не лише з MySQL і MariaDB, а й з PostgreSQL, SQLite, MS SQL та іншими СУБД.
Що вміє Adminer
- створювати, змінювати й видаляти бази даних, таблиці, індекси та зовнішні ключі;
- виконувати довільні SQL-запити;
- імпортувати й експортувати дані в SQL і CSV;
- керувати користувачами та правами;
- показувати список процесів і змінні сервера.
Встановлення на сервер із PHP
Потрібен робочий вебсервер із PHP — наприклад, стек LEMP.
Створіть окремий каталог і завантажте файл. Номер версії уточніть на сторінці релізів проєкту на GitHub (vrana/adminer):
sudo mkdir -p /var/www/adminer
sudo wget -O /var/www/adminer/index.php https://github.com/vrana/adminer/releases/download/v6.3.0/adminer-6.3.0.php
На цьому встановлення закінчено. Залишилося зробити каталог доступним через вебсервер — і обов’язково закрити його від сторонніх.
Захист доступу
Adminer дає повний доступ до баз даних, тому залишати його відкритим для всього інтернету не можна. Боти постійно шукають файли adminer.php на серверах.
Приклад конфігурації Nginx із двома рівнями захисту — обмеженням за IP-адресою та додатковим паролем:
server {
listen 80;
server_name db.example.com;
root /var/www/adminer;
index index.php;
allow 198.51.100.7;
deny all;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}
Підставте свою IP-адресу та версію PHP. Створіть файл із паролем:
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd admin
Перевірте конфігурацію та застосуйте її:
sudo nginx -t && sudo systemctl reload nginx
Потім випустіть SSL-сертифікат: без HTTPS паролі від баз даних передаються у відкритому вигляді.
sudo certbot --nginx -d db.example.com
Встановлення в Docker
Якщо бази даних працюють у контейнерах, простіше запустити Adminer поруч:
services:
adminer:
image: adminer
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
docker compose up -d
Порт опубліковано лише на локальній адресі, тому ззовні Adminer недоступний.
Доступ через SSH-тунель
Найбезпечніший варіант — узагалі не публікувати Adminer. Прокиньте порт на свій комп’ютер:
ssh -L 8080:127.0.0.1:8080 root@203.0.113.10
Поки з’єднання відкрите, Adminer доступний у браузері за адресою http://localhost:8080.
Вхід
На сторінці входу вкажіть:
- Система — тип СУБД: MySQL, PostgreSQL тощо;
- Сервер —
localhostабо ім’я контейнера з базою даних, якщо Adminer запущено в Docker; - Ім’я користувача та пароль бази даних;
- База даних — можна залишити порожнім, щоб побачити всі доступні.
Вхід без пароля Adminer не допускає. В Ubuntu користувач root у MySQL типово не має пароля й входить через сокет, тому створіть для роботи окремого користувача з паролем.
Корисні прийоми
- Експорт. Кнопка Експорт у лівій колонці створює дамп бази або окремих таблиць. Для великих баз надійніший
mysqldumpіз консолі. - Імпорт. Розмір файлу, що завантажується, обмежений параметрами PHP
upload_max_filesizeіpost_max_size. - Пошук в усіх таблицях. На сторінці бази даних є поле пошуку за вмістом усіх таблиць одразу.
Adminer чи phpMyAdmin
| Adminer | phpMyAdmin | |
|---|---|---|
| Встановлення | один файл | каталог із налаштуванням |
| Підтримка СУБД | MySQL, PostgreSQL, SQLite та інші | MySQL і MariaDB |
| Інтерфейс | мінімалістичний | докладніший |
Adminer зручний, коли потрібно швидко зазирнути в базу на сервері й не хочеться підтримувати ще один застосунок.


