В свете недавнего поста про сравнение PostgreSQL и MySQL, в комментариях возникла проблема выбора удобного интерфейса для работы с постгресом. Я сам столкнулся с такой проблемой, решив поискать альтернативы всем известному phpMyAdmin / php*Admin, который считается стандартом у веб-мастеров.

А так как по жизни я люблю минимализм и скорость, то меня гложило изнутри чувство, что ради просмотра структур таблиц, данных в БД, выполнения SQL-запросов я тащу огромнейшую кучу файлов, в архиве занимающих 5МБ, то я занялся поисками. И был найден www.adminer.org

Бесплатная веб-морда с открытым исходным кодом, предельно напоминающая по интерфейсу phpMyAdmin в виде одного *.php файла размером в 189 КБ (в минимальной комплектации). Функционал покрывает нужды 95% разработчиков:
  • Поддержка MySQL, PostgreSQL, SQLite, MS SQL, Oracle, SimpleDB, Elasticsearch, MongoDB
  • Поддержка мультиязычности
  • Бесплатна для любого использования
  • Просмотр, создание, изменение данных
  • Работа со структурами таблиц и баз
  • Работа с индексами
  • Дамп и импорт
  • Механизм аутентификации с сохранением сессий
  • Поддержка тем оформления (+1 .css файл, я использую этот)
  • и т.д.


Быстрее всего будет ознакомиться c демкой и со скриншотами на сайте.

Из минусов, мною замеченных — неполная поддержка типов данных postgresql (массивы, json, к примеру). Для себя я это вылечил правкой исходного кода, но больше желания смотреть на код у меня нет, и вам не советую. Главное, что свою задачу выполняет.

Комментарии (50)


  1. prog666
    13.10.2015 14:51
    +12

    Я почему-то думал что все давно знают про него и пользуются…


    1. evnuh
      13.10.2015 14:53
      +2

      Я тоже был крайне удивлён, что в комментариях к статье никто не упоминал про него, под конец дискуссии один робкий человек только предложил.


      1. rakot
        14.10.2015 13:08
        +3

        Я не робкий =) но ссылками в комментах на хабре стараюсь быть осторожным.


  1. nooze
    13.10.2015 15:29

    Админер клёвый. Залил его за полсекунды на хост, подправил что надо и снес. Никаких настроек, сложностей и зависимостей. Один фаил (css я обычно не заливаю даже, и так нормальный минималистический интерфейс в стиле web 1.0). Обожаю его. Как начал пользоваться — уже phpmyadmin никуда не заливал — избыточная трата времени. PMA тоже классный конечно, но в 99% случаев он не нужен.


    1. tushev
      13.10.2015 16:00
      +2

      PMA тоже классный конечно
      На мой взгляд PMA менее юзерфрендли да и функционалом местами уступает Админеру


      1. nooze
        13.10.2015 16:22
        +1

        pma местами уступает, но по общему ощущению функционально все таки превосходит. Есть там моменты, где более тонко можно что-то сделать. Но другое дело что такие тонкости нужны раз в год.


  1. Stmf
    13.10.2015 15:29

    Любопытная штука, действительно покрывает почти все задачи.


  1. tushev
    13.10.2015 16:03

    Уже много лет неустанно призываю людей попробовать Adminer. Не хотят, сопротивляются, говорят привыкли к PMA и их все устраивает. Но если чуть ли не силой заставить их немного попользоваться, обратно на PMA никто не возвращается )


  1. cher11
    13.10.2015 16:07

    Отличная вещь, пользуюсь несколько лет. Лаконичность подкупает, а PMA кажется неповоротливым монстром.


  1. saggid
    13.10.2015 16:13

    Да, прекрасный инструмент, неоднократно помогал и помогает быстро и просто работать с разнообразными данными в различных БД.


  1. tushev
    13.10.2015 16:14
    +2

    Вот она великая сила привычки и традиций. Есть монстр PMA, есть прекрасный Adminer, который лучше его практически по всем параметрам. Но 98% людей по прежнему пользуются PMA ибо так заведено испокон веков.
    Тоже самое касается очень многих других продуктов.


  1. disem
    13.10.2015 17:58
    +8

    Может кто-нибудь объяснить свой выбор в пользу этих бекдоров против десктопных mysql workbench, heidisql, sqlyog и тому подобных клиентов? (Кроме аргумента про доступ к базе открытой только на локалхост, пожалуйста, для этого есть туннелирование)


    1. evg_krsk
      13.10.2015 18:08
      +3

      Думаю, можно аргументировать отсутствием возможности туннелирования (и отсутствием шелла) :-)


      1. radist2s
        13.10.2015 18:11
        +1

        Именно. И уровень проекта, айтикомпании и прочего вообще не играет роли. Вот есть тебе ftp(2015 года, ага), вот остальные реквизиты, заливай. Git, деплой? — не, не слышал.


        1. faiwer
          13.10.2015 19:09
          +5

          Как то это уж совсем печально. Бежать от такого нужно, бежать. ИМХО.


        1. mariroz2000
          14.10.2015 12:55

          :), вы все-же слишком категоричны. Не все автомобили на наших дорогах отвечают вашим требованиям. Даже сегодня есть люди, передвигающиеся на стареньких шестерках (про безопасность умолчим). А где-то, представьте, кто-то даже обыкновенной тачкой дрова от сарая до дома перевозит. И проекты бывают разные. В т.ч. такие, для которых вполне достаточно самого дешевого хостинг-плана (кстати и у крутых компаний тоже).


      1. nitso
        13.10.2015 19:19
        +1

        Любой клиент отлично туннелируется через ssh. А sqlyog вообще имеет собственный php-скрипт для создания HTTP-туннеля.


        1. mariroz2000
          14.10.2015 12:42

          > А sqlyog вообще имеет собственный php-скрипт для создания HTTP-туннеля
          ничем не лучше админера (с точки зрения безопасности)


          1. faiwer
            14.10.2015 13:16

            ничем не лучше админера (с точки зрения безопасности)

            Ну почему же :) Немного лучше. Как-минимум:
            1. меньше вероятность что его найдут
            2. вероятно там свой протокол
            3. вероятно это никому не нужно
            4. вероятно там нет предустановленных данных для авторизации, подразумевая, что оные есть на стороне разработчика

            В любом случае лучше vasya.pupkin/phpmyadmin/index.php


            1. mariroz2000
              14.10.2015 13:48

              вряд ли лучше. 1 — боты давно уже ищут и одно и другое (посмотрите у себя в логах, например), 2 — свой протокол не факт что плюс (не думаю, что они там шифрование симметричным ключем реализовали, смотреть не буду), скорее минус как дополнительный источник багов, 3 — не нужно с той же вероятностью, что и админер, 4 — их нет и в админер.
              Клинический случай с phpmyadmin не рассматриваем :)


    1. shuron
      13.10.2015 22:42
      +1

      Ну я например обнаружил и стал интенсивно пользоваться когда с некоторыми проектами перехал в облако.
      Поднимаю одной строчкой контейнер, например прямо на целевой машине где-то в облаке (но не суть вазно где именно) поработаю с базой остнавливаю… или сношу…
      https://hub.docker.com/r/clue/adminer/


    1. mariroz2000
      14.10.2015 12:36

      конечно, десктопные клиенты и только они необходимы для разработки.
      НО админер и сделан в виде одного файла для того, чтобы ВРЕМЕННО использовать для исследования или масштабных исправлений на стороне клиента там, где хостинг позволяет подключаться к базе только с локалхоста или фиксированного IP и нет шелла. Удобно и быстро загрузить один файл, исправить что нужно и удалить. Гораздо удобнее веб-шелла (не факт, что тоже будет работать) или скриптов.


      1. faiwer
        14.10.2015 13:18
        +1

        где хостинг позволяет подключаться к базе только с локалхоста
        Второй раз глаз цепляется в этой теме за такой аргумент. Так ощущение, что изначально предполагается, что СУБД должна быть доступна за пределами localhost-а, но, мол, не всегда есть такая возможность. оО.


        1. Areso
          14.10.2015 13:57

          Самый дешевый шаред хостинг, где у вас есть доступ к фтп, есть доступ к своей (своим) бд под управлением MySQL, чьи настройки уже вам недоступны (разве что в режиме чтения), и соотв. MySQL управляется хостинг-оператором.


          1. lexxpavlov
            14.10.2015 23:43
            +1

            тогда уж в таких шаредах PMA на самом проекте не нужен — он доступен через админ-панель хостера.


        1. mariroz2000
          14.10.2015 14:00

          если «была бы должна», не было бы админера и этой дискуссии тоже :)


          1. faiwer
            14.10.2015 15:02
            +1

            если «была бы должна», не было бы админера и этой дискуссии тоже :)
            Было бы не менее печально. Открытый вовне порт СУБД… Звучит как начало ужастика.


      1. Fesor
        14.10.2015 14:47
        +1

        ssh тунель и вуаля


  1. faiwer
    13.10.2015 19:07

    но больше желания смотреть на код у меня нет, и вам не советую. Главное, что свою задачу выполняет.

    Посмотрел. Гхм. Ну… Эммм. Зря я это сделал. Какая-то жуткая мешанина HTML, PHP разбросанная по файлам. Благо хоть inline-SQL не нашёл. Вы предлагаете его использовать вместо local GUI или на сервере тоже? А почему, к примеру, не heidiSQL + ssh-проброс?

    Поддерживаю один проект, написанный несколько лет назад. Компания, которой я его делал, обзавелась собственным отделом разработки. Обнаружил в корне проекта директорию phpmyadmin и соответствующие настройки в nginx-конфиге. Задумался. Зачем это может быть нужно… К тому же, к чему подвергать живущий проект такому риску?

    Может быть я чего то в этой жизни не понимаю…


    1. evnuh
      13.10.2015 19:20
      +7

      Я его использую на сервере, с peer аутентификацией под read-only юзером, а доступ запаролен на уровне веб-сервера. Он нужен для удобного просмотра данных на проде, посмотреть что там с данными у пользователей по багрепортам и выяснить кто дурак — юзер, сервер или я. Порой делать это надо не всегда, когда под рукой рабочий ноут.
      Отвечу вам и сразу всем, кто ратует за безопасность и проброс портов вкупе с десктопными программами. Ответ же очевиден, почему люди используют веб-морды — это удобно. Это действительно очень удобно. Это плохо, но это удобно, с этим явно не поспоришь. Типичный веб-разработчик, все его знают, для него в разы быстрее залить файл на сервер и готово, чем ставить софт на всех его девайсах, пробрасывать порты на разных ОС уметь, ну.


    1. Wedmer
      13.10.2015 19:44

      Эта мешанина потом пакуется в один файл. Наверное поэтому там inline html.


      1. faiwer
        13.10.2015 19:53

        Эмм. Логика ускользает от меня. А что мешает собрать все вьюхи в тот же самый массив? Скорее это code-style такой. Интересно, а как там с magic quotes :)


        1. Wedmer
          13.10.2015 20:49

          Не знаю. По мне inline html как то дико смотрится. С шаблонами оно все красивее было бы.


        1. Fesor
          14.10.2015 00:37
          +3

          а как там с magic quotes

          волшебные кавычки выпилины из PHP черти когда. Больше их нет, народ все еще стыдится что это было.


  1. nikitasius
    13.10.2015 19:18

    putty-> localhost-> heidisql?


  1. Nastradamus
    13.10.2015 20:28

    Просто стоит попробовать использовать постгревую консоль. Разница между mysql-консолью и postgres — как между cmd.exe и bash. Заставить себя поюзать пару дней и забыть о гуи/ веб-морде как о страшном сне.


  1. romy4
    13.10.2015 20:40

    Не могли бы вы сделать какой-нибудь diff для патча json формата? Я сравнил файлы с офсайта и с вашей ветки, там драйвера postgre идентичны.


  1. Mercury13
    13.10.2015 20:47

    Пользуюсь по-чёрному, в те минимальные задачи, которые приходится делать по вебу, вписывается на 100%. И маленький.


  1. maseal
    13.10.2015 22:39
    +9

    Иногда лучше в код подобных вещей даже не заглядывать, чтобы не портить впечатление от удобной на вид вещи.
    Самок худшее моё воспоминание в этом плане — проект, который хотели нам отдать на поддержку: внешне симпатичная и удобная интранет-система управления, ожидалось, что внутри будет что-то более-менее адекватное. А внутри был реальный АД с большой буквы: весть проект состоял из двух файлов на Visual Basic общим весом в исходниках около 10 MB, которые компилировались в DLL, которая прицеплялась к IIS в виде ISAPI-модуля. А внутри самих этих файлов было развесистое многоуровневое дерево из IF-ов, где конкатенацией строк генерился HTML. И в каждой из ветвей море копипаста, но с небольшими «нюансами».
    Просто хотелось посмотреть в глаза человеку, который всё это начал и сказать ему много всего.


  1. Fibril
    14.10.2015 02:16

    Пользуюсь этим скриптом довольно давно. Ничего удобней не встречал. Как минус — есть некрасивые внешние запросы, теоретически позволяющие получить некоторую информацию о базе данных и ее использовании, легко лечится.


  1. bIbI4k0
    14.10.2015 06:19

    Весьма годный инструмент. Кстати, если нет полноценного веб-сервера, можно запускать через встроенный в php сервер:

    php -S 127.0.0.1:8080 -t /path/to/adminerDir/
    


  1. ketrin7
    14.10.2015 07:51

    Действительно, кроме РМА, даже не задумывалась поискать что-то другое. Отправила ссылочку нашему админу, может заинтересуется


  1. pesh1983
    14.10.2015 09:42
    +1

    Ещё один плюс использования десктоп-клиентов — отсутствие на сервере php) Я разрабатываю проекты на Python, мне намного удобнее не зависеть от серверного окружения. Там может быть Perl, Php или Python, неважно. Да и серверов может быть много, в этом случае удобнее в одном клиенте хранить настройки ко всем БД на всех серверах


  1. phoenixweiss
    14.10.2015 10:48
    +1

    Я никогда не ставлю интерфейсы для работы с БД на сервер и тем более никогда в открытом виде. В работе использую Sequel Pro для OS X который коннектится к БД через ssh-туннель на сервер, авторизация на котором возможна только по RSA-ключам (все пароли отключены вообще, кроме root-пароля для MySQL).


    1. Fesor
      14.10.2015 11:24

      вы можете настроить ssh тунель локально и подключаться через этот скриптик со своего компа. В целом я вообще не вижу смысла, psql очень даже удобная штука, особенно если в качестве pager-а использовать less.


      1. phoenixweiss
        14.10.2015 12:27

        И смысл меня минусовать? Я описал конкретный кейс как работаю. Да, я могу настроить ssh-туннель локально и подключаться через этот скриптик со своего компа, но зачем? В чем глобально будет качественное различие с моим решением?

        Пока это звучит примерно так:
        — Я езжу на праворуком седане
        — Но вы же можете пересесть на леворукий хэтчбек!
        А задача например стояла просто добираться до работы каждый день.


    1. MaxZN
      14.10.2015 14:06

      Аналогично. Только использую NavyCat под Ubuntu. Хорошая штука, много чего умеет. Кстати, кто чем пользуется под Linux из аналогичных инструментов?


      1. rieder
        15.10.2015 10:42

        Могу посоветовать DBeaver. В России на удивление мало известен, хотя сделано у нас. Симпатичное, уйма фич, любые базы, фришное, опенсорсное.


        1. MaxZN
          16.10.2015 10:10

          Ай спасибо!) Как я давно искал что-то подобное под линукс. По функционалу тот-же самый NavyCat, который тоже хорош, но под линукс, только под вином) Кто знает, как ставятся виндовые проги под линукс — меня поймут.


  1. stychos
    16.10.2015 02:35
    +1

    Начиная с какой-то там версии, лично у меня pma начал жутко глючить и тормозить (слишком они увлеклись навешиванием всякого js, имхо), тут же перешёл и всем советую использовать именно админер. А узнал о нём именно от тебя, автор =)
    Насчёт кода — далеко не всё так плохо. И у них, как я понял, одной из целей разработки являлась совместимость с PHP4, да и его ещё можно читать и понять. Если хочешь увидеть действительно ужасный код — добро пожаловать сюда, например.