Как использовать Adminer для управления базами данных

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, иначе логин и пароль БД уйдут открытым текстом.

Форма входа Adminer
Экран авторизации Adminer

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)
);
Работа с SQL в Adminer
Интерфейс SQL в Adminer

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 в корне сайта.

Источники и ссылки


Комментарии загружаются…