Adminer — легковесная альтернатива PhpMyAdmin.

PhpMyAdmin весьма удобная штука, но иногда возникает задача, скажем, быстро экспортировать таблицу БД или сделать бэкап. На разворачивание PhpMyAdmin уйдёт время. В качестве альтернативы можно использовать Adminer.

Основные фишки этого инструмента администрирования БД:

  • Бесплатная веб-морда с открытым исходным кодом, предельно напоминающая по интерфейсу phpMyAdmin в виде одного *.php файла
  • Поддержка MySQL, PostgreSQL, SQLite, MS SQL, Oracle, SimpleDB, Elasticsearch, MongoDB
  • Базовые функции: выбор базы данных, выбор и редактирование её таблиц, просмотр и редактирование их содержимого
  • Поиск и сортировка по содержимому нескольких колонок таблицы
  • Редактирование таких объектов, как: представления, триггеры, события, хранимые процедуры, процессы, переменные mysql, права доступа пользователей
  • Текстовое поле для ввода произвольных SQL выражений с поддержкой истории команд
  • Подсветка SQL-синтаксиса
  • Экспорт баз данных и их таблиц
  • Удобный пользовательский интерфейс (активно использующий JavaScript)
  • Переключаемый язык интерфейса (английский, русский, чешский, словацкий, немецкий, испанский, датский, французский, итальянский, эстонский, венгерский, китайский, японский, тамилский, всего включено 28 языков интерфейса)
  • Визуальный редактор E-R схем БД
  • Защита от взлома через XSS, CSRF, SQL инъекции, похищение сессий…
  • Вывод валидных XHTML 1.1 страниц в кодировке UTF-8
  • Поддержка тем оформления

С установкой проблем возникнуть не должно — просто скачиваете исходник, заливаете на сайт и открываете adminer.php

Единственная трудность, с которой я столкнулся — если БД не имеет пароля (обычно на локали такое часто встречается), то админер в свежеей версии не пускает в интерфейс просмотра. Это связано с их политикой безопасности.

Собственно решение описано здесь.

Если лень читать, делаем так:

  1. Создаём директорию adminer в корне сайта и заливаем туда сам скрипт админера (он должен называться adminer.php)
  2. Создаём индексный файл (index.php), содержимое которого должно быть следующим:
<?
function adminer_object() {
  
  class AdminerSoftware extends Adminer {
    
    function name() {
      // custom name in title and heading
      return 'Software';
    }
    
    function login($login, $password) {
      // validate user submitted credentials
      return ($login == 'root' && $password == '');
    }
    
  }
  
  return new AdminerSoftware;
}
include "./adminer.php";
?>

На выходе должны получить:

В скрипте соответственно root — логин, а пасс — пустая строка.

В админер заходим по ссылке {адрес сайта}/adminer