Adminer лёгкий веб-клиент для СУБД в одном PHP-файле. Поддерживает MySQL/MariaDB, PostgreSQL, SQLite, MS SQL, Oracle и другие. Удобен на VPS и shared-хостинге, когда phpMyAdmin избыточен, а CLI неудобен.
Ниже установка, вход, типичные операции, SQL, безопасность, обновление и удаление. Adminer не оставляют открытым на проде без ограничений: после задач лучше снять файл или закрыть доступ по IP/VPN.
1. Скачать Adminer
Берите актуальную сборку с adminer.org. Есть полная версия и сборки под конкретную СУБД (например, MySQL-only меньше файл).
# MySQL/MariaDB-сборка wget https://www.adminer.org/latest-mysql.php -O adminer.php # Универсальная сборка wget https://www.adminer.org/latest.php -O adminer.php
На нескольких серверах загрузку можно завернуть в скрипт или Ansible, чтобы не таскать файл руками.
2. Положить файл на сервер
Через FTP/SFTP (FileZilla и аналоги) или SCP по SSH. Для админки предпочтительнее SSH:
scp adminer.php user@yourserver:/var/www/html/adminer.php
Путь зависит от vhost. Не кладите Adminer в корень публичного сайта без защиты: лучше отдельный хост, нестандартное имя файла и ограничение по IP.
#!/bin/bash SERVER="yourserver" USER="youruser" SRC_FILE="adminer.php" DST_DIR="/var/www/html/" scp "$SRC_FILE" "$USER@$SERVER:$DST_DIR"
3. Открыть в браузере
Перейдите по URL, где лежит файл:
https://yourdomain.com/adminer.php
Должна открыться форма входа. Работайте только по HTTPS, иначе логин и пароль БД уйдут открытым текстом.
4. Подключение к БД
В форме указываются:
- Система MySQL, PostgreSQL, SQLite и т.д.
- Сервер обычно
localhostили сокет/IP удалённого хоста. - Пользователь и пароль учётка БД.
- При необходимости имя базы (можно выбрать после входа).
Database: MySQL Server: localhost Username: root Password: yourpassword
Не светите root/admin из публичного интернета. Заведите отдельного пользователя с правами только на нужные схемы.
5. Структура: таблицы и схема
После входа доступны список баз, таблицы, индексы, экспорт/импорт. Типовые действия:
- создать таблицу и поля;
- изменить структуру (ALTER);
- удалить ненужные объекты.
Пример DDL:
CREATE TABLE employees ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), position VARCHAR(100), salary DECIMAL(10, 2) );
6. Данные: insert, update, delete
В таблице можно править строки через UI или SQL:
- Добавить форма New item / INSERT.
- Изменить клик по строке, правка полей.
- Удалить выбор строк и delete (на проде с осторожностью).
INSERT INTO employees (name, position, salary)
VALUES ('John Doe', 'DevOps Engineer', 75000);
7. Вкладка SQL
Вкладка SQL выполняет произвольные запросы: выборки, миграции, массовые UPDATE, анализ. Сложные запросы сначала гоняйте на копии БД.
SELECT position, AVG(salary) AS avg_salary FROM employees GROUP BY position HAVING avg_salary > 50000;
Частые запросы удобно хранить в репозитории или сниппетах, а не набирать заново.
8. Безопасность
Adminer полноценный доступ к БД. Минимальный набор мер:
- Ограничение по IP (Apache
.htaccessили аналог в Nginx). - VPN / SSH-туннель не публиковать Adminer в открытый интернет.
- Только HTTPS.
- Отдельный DB-user с минимальными правами.
- Нестандартное имя файла и удаление после работы.
Пример для Apache (подставьте свой IP):
<Files "adminer.php"> Order Deny,Allow Deny from all Allow from 192.168.1.100 </Files>
В Nginx обычно делают allow/deny в location или закрывают Adminer basic-auth + IP allowlist.
9. Обновление
Adminer один файл: достаточно перезаписать его свежей версией. Данные БД не затрагиваются.
wget https://www.adminer.org/latest.php -O /var/www/html/adminer.php
10. Удаление
Когда разовая задача закончена, файл лучше убрать с сервера:
rm /var/www/html/adminer.php
Практика для админов и DevOps
- Ставьте и обновляйте через скрипт/роль, а не «вручную на каждом хосте».
- Логируйте доступ к vhost с Adminer (nginx/apache access + fail2ban при необходимости).
- Держите allowlist IP или вход только через VPN/SSH-туннель.
- Тяжёлые и массовые SQL проверяйте на стейдже.
- На постоянной основе для прод-БД чаще удобнее CLI, GUI-клиент по SSH или managed-консоль облака, а Adminer как быстрый spare-tool.
Кратко
Adminer компактный веб-доступ к БД: скачал, положил, открыл, сделал задачу, закрыл доступ или удалил. Главное HTTPS, ограничение входа и отсутствие «вечно торчащего» adminer.php в корне сайта.
