Adminer — веб-интерфейс для баз данных размером в один .php файл



    В свете недавнего поста про сравнение 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, к примеру). Для себя я это вылечил правкой исходного кода, но больше желания смотреть на код у меня нет, и вам не советую. Главное, что свою задачу выполняет.
    Поделиться публикацией
    Комментарии 53
      +12
      Я почему-то думал что все давно знают про него и пользуются…
        +2
        Я тоже был крайне удивлён, что в комментариях к статье никто не упоминал про него, под конец дискуссии один робкий человек только предложил.
          +3
          Я не робкий =) но ссылками в комментах на хабре стараюсь быть осторожным.
        0
        Админер клёвый. Залил его за полсекунды на хост, подправил что надо и снес. Никаких настроек, сложностей и зависимостей. Один фаил (css я обычно не заливаю даже, и так нормальный минималистический интерфейс в стиле web 1.0). Обожаю его. Как начал пользоваться — уже phpmyadmin никуда не заливал — избыточная трата времени. PMA тоже классный конечно, но в 99% случаев он не нужен.
          +2
          PMA тоже классный конечно
          На мой взгляд PMA менее юзерфрендли да и функционалом местами уступает Админеру
            +1
            pma местами уступает, но по общему ощущению функционально все таки превосходит. Есть там моменты, где более тонко можно что-то сделать. Но другое дело что такие тонкости нужны раз в год.
          0
          Любопытная штука, действительно покрывает почти все задачи.
            0
            Уже много лет неустанно призываю людей попробовать Adminer. Не хотят, сопротивляются, говорят привыкли к PMA и их все устраивает. Но если чуть ли не силой заставить их немного попользоваться, обратно на PMA никто не возвращается )
              0
              Отличная вещь, пользуюсь несколько лет. Лаконичность подкупает, а PMA кажется неповоротливым монстром.
                0
                Да, прекрасный инструмент, неоднократно помогал и помогает быстро и просто работать с разнообразными данными в различных БД.
                  +2
                  Вот она великая сила привычки и традиций. Есть монстр PMA, есть прекрасный Adminer, который лучше его практически по всем параметрам. Но 98% людей по прежнему пользуются PMA ибо так заведено испокон веков.
                  Тоже самое касается очень многих других продуктов.
                    +8
                    Может кто-нибудь объяснить свой выбор в пользу этих бекдоров против десктопных mysql workbench, heidisql, sqlyog и тому подобных клиентов? (Кроме аргумента про доступ к базе открытой только на локалхост, пожалуйста, для этого есть туннелирование)
                      +3
                      Думаю, можно аргументировать отсутствием возможности туннелирования (и отсутствием шелла) :-)
                        +1
                        Именно. И уровень проекта, айтикомпании и прочего вообще не играет роли. Вот есть тебе ftp(2015 года, ага), вот остальные реквизиты, заливай. Git, деплой? — не, не слышал.
                          +5
                          Как то это уж совсем печально. Бежать от такого нужно, бежать. ИМХО.
                            0
                            :), вы все-же слишком категоричны. Не все автомобили на наших дорогах отвечают вашим требованиям. Даже сегодня есть люди, передвигающиеся на стареньких шестерках (про безопасность умолчим). А где-то, представьте, кто-то даже обыкновенной тачкой дрова от сарая до дома перевозит. И проекты бывают разные. В т.ч. такие, для которых вполне достаточно самого дешевого хостинг-плана (кстати и у крутых компаний тоже).
                            +1
                            Любой клиент отлично туннелируется через ssh. А sqlyog вообще имеет собственный php-скрипт для создания HTTP-туннеля.
                              0
                              > А sqlyog вообще имеет собственный php-скрипт для создания HTTP-туннеля
                              ничем не лучше админера (с точки зрения безопасности)
                                0
                                ничем не лучше админера (с точки зрения безопасности)

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

                                В любом случае лучше vasya.pupkin/phpmyadmin/index.php
                                  0
                                  вряд ли лучше. 1 — боты давно уже ищут и одно и другое (посмотрите у себя в логах, например), 2 — свой протокол не факт что плюс (не думаю, что они там шифрование симметричным ключем реализовали, смотреть не буду), скорее минус как дополнительный источник багов, 3 — не нужно с той же вероятностью, что и админер, 4 — их нет и в админер.
                                  Клинический случай с phpmyadmin не рассматриваем :)
                            +1
                            Ну я например обнаружил и стал интенсивно пользоваться когда с некоторыми проектами перехал в облако.
                            Поднимаю одной строчкой контейнер, например прямо на целевой машине где-то в облаке (но не суть вазно где именно) поработаю с базой остнавливаю… или сношу…
                            https://hub.docker.com/r/clue/adminer/
                              0
                              конечно, десктопные клиенты и только они необходимы для разработки.
                              НО админер и сделан в виде одного файла для того, чтобы ВРЕМЕННО использовать для исследования или масштабных исправлений на стороне клиента там, где хостинг позволяет подключаться к базе только с локалхоста или фиксированного IP и нет шелла. Удобно и быстро загрузить один файл, исправить что нужно и удалить. Гораздо удобнее веб-шелла (не факт, что тоже будет работать) или скриптов.
                                +1
                                где хостинг позволяет подключаться к базе только с локалхоста
                                Второй раз глаз цепляется в этой теме за такой аргумент. Так ощущение, что изначально предполагается, что СУБД должна быть доступна за пределами localhost-а, но, мол, не всегда есть такая возможность. оО.
                                  0
                                  Самый дешевый шаред хостинг, где у вас есть доступ к фтп, есть доступ к своей (своим) бд под управлением MySQL, чьи настройки уже вам недоступны (разве что в режиме чтения), и соотв. MySQL управляется хостинг-оператором.
                                    +1
                                    тогда уж в таких шаредах PMA на самом проекте не нужен — он доступен через админ-панель хостера.
                                    0
                                    если «была бы должна», не было бы админера и этой дискуссии тоже :)
                                      +1
                                      если «была бы должна», не было бы админера и этой дискуссии тоже :)
                                      Было бы не менее печально. Открытый вовне порт СУБД… Звучит как начало ужастика.
                                    +1
                                    ssh тунель и вуаля
                                  0
                                  но больше желания смотреть на код у меня нет, и вам не советую. Главное, что свою задачу выполняет.

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

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

                                  Может быть я чего то в этой жизни не понимаю…
                                    +7
                                    Я его использую на сервере, с peer аутентификацией под read-only юзером, а доступ запаролен на уровне веб-сервера. Он нужен для удобного просмотра данных на проде, посмотреть что там с данными у пользователей по багрепортам и выяснить кто дурак — юзер, сервер или я. Порой делать это надо не всегда, когда под рукой рабочий ноут.
                                    Отвечу вам и сразу всем, кто ратует за безопасность и проброс портов вкупе с десктопными программами. Ответ же очевиден, почему люди используют веб-морды — это удобно. Это действительно очень удобно. Это плохо, но это удобно, с этим явно не поспоришь. Типичный веб-разработчик, все его знают, для него в разы быстрее залить файл на сервер и готово, чем ставить софт на всех его девайсах, пробрасывать порты на разных ОС уметь, ну.
                                      0
                                      Эта мешанина потом пакуется в один файл. Наверное поэтому там inline html.
                                        0
                                        Эмм. Логика ускользает от меня. А что мешает собрать все вьюхи в тот же самый массив? Скорее это code-style такой. Интересно, а как там с magic quotes :)
                                          0
                                          Не знаю. По мне inline html как то дико смотрится. С шаблонами оно все красивее было бы.
                                            +3
                                            а как там с magic quotes

                                            волшебные кавычки выпилины из PHP черти когда. Больше их нет, народ все еще стыдится что это было.
                                        0
                                        putty-> localhost-> heidisql?
                                          0
                                          Просто стоит попробовать использовать постгревую консоль. Разница между mysql-консолью и postgres — как между cmd.exe и bash. Заставить себя поюзать пару дней и забыть о гуи/ веб-морде как о страшном сне.
                                            0
                                            Не могли бы вы сделать какой-нибудь diff для патча json формата? Я сравнил файлы с офсайта и с вашей ветки, там драйвера postgre идентичны.
                                              0
                                              Пользуюсь по-чёрному, в те минимальные задачи, которые приходится делать по вебу, вписывается на 100%. И маленький.
                                                +9
                                                Иногда лучше в код подобных вещей даже не заглядывать, чтобы не портить впечатление от удобной на вид вещи.
                                                Самок худшее моё воспоминание в этом плане — проект, который хотели нам отдать на поддержку: внешне симпатичная и удобная интранет-система управления, ожидалось, что внутри будет что-то более-менее адекватное. А внутри был реальный АД с большой буквы: весть проект состоял из двух файлов на Visual Basic общим весом в исходниках около 10 MB, которые компилировались в DLL, которая прицеплялась к IIS в виде ISAPI-модуля. А внутри самих этих файлов было развесистое многоуровневое дерево из IF-ов, где конкатенацией строк генерился HTML. И в каждой из ветвей море копипаста, но с небольшими «нюансами».
                                                Просто хотелось посмотреть в глаза человеку, который всё это начал и сказать ему много всего.
                                                  0
                                                  Пользуюсь этим скриптом довольно давно. Ничего удобней не встречал. Как минус — есть некрасивые внешние запросы, теоретически позволяющие получить некоторую информацию о базе данных и ее использовании, легко лечится.
                                                    0
                                                    Весьма годный инструмент. Кстати, если нет полноценного веб-сервера, можно запускать через встроенный в php сервер:
                                                    php -S 127.0.0.1:8080 -t /path/to/adminerDir/
                                                    
                                                      0
                                                      Действительно, кроме РМА, даже не задумывалась поискать что-то другое. Отправила ссылочку нашему админу, может заинтересуется
                                                        +1
                                                        Ещё один плюс использования десктоп-клиентов — отсутствие на сервере php) Я разрабатываю проекты на Python, мне намного удобнее не зависеть от серверного окружения. Там может быть Perl, Php или Python, неважно. Да и серверов может быть много, в этом случае удобнее в одном клиенте хранить настройки ко всем БД на всех серверах
                                                          +1
                                                          Я никогда не ставлю интерфейсы для работы с БД на сервер и тем более никогда в открытом виде. В работе использую Sequel Pro для OS X который коннектится к БД через ssh-туннель на сервер, авторизация на котором возможна только по RSA-ключам (все пароли отключены вообще, кроме root-пароля для MySQL).
                                                            0
                                                            вы можете настроить ssh тунель локально и подключаться через этот скриптик со своего компа. В целом я вообще не вижу смысла, psql очень даже удобная штука, особенно если в качестве pager-а использовать less.
                                                              0
                                                              И смысл меня минусовать? Я описал конкретный кейс как работаю. Да, я могу настроить ssh-туннель локально и подключаться через этот скриптик со своего компа, но зачем? В чем глобально будет качественное различие с моим решением?

                                                              Пока это звучит примерно так:
                                                              — Я езжу на праворуком седане
                                                              — Но вы же можете пересесть на леворукий хэтчбек!
                                                              А задача например стояла просто добираться до работы каждый день.
                                                              0
                                                              Аналогично. Только использую NavyCat под Ubuntu. Хорошая штука, много чего умеет. Кстати, кто чем пользуется под Linux из аналогичных инструментов?
                                                                0
                                                                Могу посоветовать DBeaver. В России на удивление мало известен, хотя сделано у нас. Симпатичное, уйма фич, любые базы, фришное, опенсорсное.
                                                                  0
                                                                  Ай спасибо!) Как я давно искал что-то подобное под линукс. По функционалу тот-же самый NavyCat, который тоже хорош, но под линукс, только под вином) Кто знает, как ставятся виндовые проги под линукс — меня поймут.
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                0
                                                                В IDEA-подобных средах есть удобная штука: Database Tools.
                                                                На мой не-DBA взгляд инструмент покрывает ежедневные потребности разработчика. Разве что из сахара не хватает прямых переходов кликом по FK как в Sequel Pro.
                                                                  0
                                                                  Заглянул на гитхаб и не могу взять в толк — о каком «одном файле» все говорят? Их же там куча.
                                                                    0
                                                                    В исходниках на github — да, куча файлов. Просто есть сборочный скрипт, который их в нужной конфигурации умеет сливать в один .php файл

                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                  Самое читаемое