Adminer: управление базами данных одним PHP-файлом

Adminer это менеджер баз данных, который целиком помещается в один PHP-файл размером меньше мегабайта. Он умеет то же, что phpMyAdmin, и работает не только с MySQL и MariaDB, но и с PostgreSQL, SQLite, MS SQL и Oracle.

Шаг 1. Скачиваем

Возьмите последнюю версию на adminer.org. Есть варианты для всех баз и только для MySQL. Например, через терминал прямо в каталог сайта:

cd /var/www/example.ru
wget -O adm-7f3k.php https://www.adminer.org/latest.php

Дайте файлу неочевидное имя, а не adminer.php: боты ищут именно его.

Шаг 2. Входим

Откройте https://example.ru/adm-7f3k.php, выберите систему, укажите сервер (обычно localhost), пользователя, пароль и базу. Данные для WordPress лежат в wp-config.php.

Шаг 3. Работаем

  • Таблицы. Просмотр, поиск, редактирование строк, изменение структуры.
  • SQL-запросы. Пункт «SQL-запрос» выполняет произвольный код, например поиск записей или массовые изменения.
  • Экспорт. Дамп базы целиком или выбранных таблиц в SQL или CSV.
  • Импорт. Загрузка SQL-файла. Большие дампы лучше загружать через консоль, у PHP есть ограничения на размер.
  • Пользователи и права. Создание пользователей и выдача прав.

Замену адресов сайта через SQL делать не стоит: сломаются сериализованные данные. Для этого используйте wp search-replace, как в статье о переносе на новый домен.

Безопасность

Adminer открывает полный доступ к базе, поэтому:

  • удаляйте файл сразу после работы;
  • если он нужен постоянно, закройте доступ по IP или паролем в Nginx;
  • всегда работайте по HTTPS;
  • регулярно обновляйте Adminer: в старых версиях находили уязвимости.

Пример ограничения в Nginx:

location = /adm-7f3k.php {
    allow 203.0.113.10;
    deny all;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

В WordOps Adminer уже встроен в служебную панель на порту 22222. С облачной базой Adminer тоже работает, например с PostgreSQL в Beget.

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


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