
В свете недавнего поста про сравнение 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)
nooze
13.10.2015 15:29Админер клёвый. Залил его за полсекунды на хост, подправил что надо и снес. Никаких настроек, сложностей и зависимостей. Один фаил (css я обычно не заливаю даже, и так нормальный минималистический интерфейс в стиле web 1.0). Обожаю его. Как начал пользоваться — уже phpmyadmin никуда не заливал — избыточная трата времени. PMA тоже классный конечно, но в 99% случаев он не нужен.
tushev
13.10.2015 16:00+2PMA тоже классный конечно
На мой взгляд PMA менее юзерфрендли да и функционалом местами уступает Админеруnooze
13.10.2015 16:22+1pma местами уступает, но по общему ощущению функционально все таки превосходит. Есть там моменты, где более тонко можно что-то сделать. Но другое дело что такие тонкости нужны раз в год.
tushev
13.10.2015 16:03Уже много лет неустанно призываю людей попробовать Adminer. Не хотят, сопротивляются, говорят привыкли к PMA и их все устраивает. Но если чуть ли не силой заставить их немного попользоваться, обратно на PMA никто не возвращается )
cher11
13.10.2015 16:07Отличная вещь, пользуюсь несколько лет. Лаконичность подкупает, а PMA кажется неповоротливым монстром.
saggid
13.10.2015 16:13Да, прекрасный инструмент, неоднократно помогал и помогает быстро и просто работать с разнообразными данными в различных БД.
tushev
13.10.2015 16:14+2Вот она великая сила привычки и традиций. Есть монстр PMA, есть прекрасный Adminer, который лучше его практически по всем параметрам. Но 98% людей по прежнему пользуются PMA ибо так заведено испокон веков.
Тоже самое касается очень многих других продуктов.
disem
13.10.2015 17:58+8Может кто-нибудь объяснить свой выбор в пользу этих бекдоров против десктопных mysql workbench, heidisql, sqlyog и тому подобных клиентов? (Кроме аргумента про доступ к базе открытой только на локалхост, пожалуйста, для этого есть туннелирование)
evg_krsk
13.10.2015 18:08+3Думаю, можно аргументировать отсутствием возможности туннелирования (и отсутствием шелла) :-)
radist2s
13.10.2015 18:11+1Именно. И уровень проекта, айтикомпании и прочего вообще не играет роли. Вот есть тебе ftp(2015 года, ага), вот остальные реквизиты, заливай. Git, деплой? — не, не слышал.
mariroz2000
14.10.2015 12:55:), вы все-же слишком категоричны. Не все автомобили на наших дорогах отвечают вашим требованиям. Даже сегодня есть люди, передвигающиеся на стареньких шестерках (про безопасность умолчим). А где-то, представьте, кто-то даже обыкновенной тачкой дрова от сарая до дома перевозит. И проекты бывают разные. В т.ч. такие, для которых вполне достаточно самого дешевого хостинг-плана (кстати и у крутых компаний тоже).
nitso
13.10.2015 19:19+1Любой клиент отлично туннелируется через ssh. А sqlyog вообще имеет собственный php-скрипт для создания HTTP-туннеля.
mariroz2000
14.10.2015 12:42> А sqlyog вообще имеет собственный php-скрипт для создания HTTP-туннеля
ничем не лучше админера (с точки зрения безопасности)faiwer
14.10.2015 13:16ничем не лучше админера (с точки зрения безопасности)
Ну почему же :) Немного лучше. Как-минимум:
- меньше вероятность что его найдут
- вероятно там свой протокол
- вероятно это никому не нужно
- вероятно там нет предустановленных данных для авторизации, подразумевая, что оные есть на стороне разработчика
В любом случае лучше vasya.pupkin/phpmyadmin/index.phpmariroz2000
14.10.2015 13:48вряд ли лучше. 1 — боты давно уже ищут и одно и другое (посмотрите у себя в логах, например), 2 — свой протокол не факт что плюс (не думаю, что они там шифрование симметричным ключем реализовали, смотреть не буду), скорее минус как дополнительный источник багов, 3 — не нужно с той же вероятностью, что и админер, 4 — их нет и в админер.
Клинический случай с phpmyadmin не рассматриваем :)
shuron
13.10.2015 22:42+1Ну я например обнаружил и стал интенсивно пользоваться когда с некоторыми проектами перехал в облако.
Поднимаю одной строчкой контейнер, например прямо на целевой машине где-то в облаке (но не суть вазно где именно) поработаю с базой остнавливаю… или сношу…
https://hub.docker.com/r/clue/adminer/
mariroz2000
14.10.2015 12:36конечно, десктопные клиенты и только они необходимы для разработки.
НО админер и сделан в виде одного файла для того, чтобы ВРЕМЕННО использовать для исследования или масштабных исправлений на стороне клиента там, где хостинг позволяет подключаться к базе только с локалхоста или фиксированного IP и нет шелла. Удобно и быстро загрузить один файл, исправить что нужно и удалить. Гораздо удобнее веб-шелла (не факт, что тоже будет работать) или скриптов.faiwer
14.10.2015 13:18+1где хостинг позволяет подключаться к базе только с локалхоста
Второй раз глаз цепляется в этой теме за такой аргумент. Так ощущение, что изначально предполагается, что СУБД должна быть доступна за пределами localhost-а, но, мол, не всегда есть такая возможность. оО.Areso
14.10.2015 13:57Самый дешевый шаред хостинг, где у вас есть доступ к фтп, есть доступ к своей (своим) бд под управлением MySQL, чьи настройки уже вам недоступны (разве что в режиме чтения), и соотв. MySQL управляется хостинг-оператором.
lexxpavlov
14.10.2015 23:43+1тогда уж в таких шаредах PMA на самом проекте не нужен — он доступен через админ-панель хостера.
mariroz2000
14.10.2015 14:00если «была бы должна», не было бы админера и этой дискуссии тоже :)
faiwer
14.10.2015 15:02+1если «была бы должна», не было бы админера и этой дискуссии тоже :)
Было бы не менее печально. Открытый вовне порт СУБД… Звучит как начало ужастика.
faiwer
13.10.2015 19:07но больше желания смотреть на код у меня нет, и вам не советую. Главное, что свою задачу выполняет.
Посмотрел. Гхм. Ну… Эммм. Зря я это сделал. Какая-то жуткая мешанина HTML, PHP разбросанная по файлам. Благо хоть inline-SQL не нашёл. Вы предлагаете его использовать вместо local GUI или на сервере тоже? А почему, к примеру, не heidiSQL + ssh-проброс?
Поддерживаю один проект, написанный несколько лет назад. Компания, которой я его делал, обзавелась собственным отделом разработки. Обнаружил в корне проекта директорию phpmyadmin и соответствующие настройки в nginx-конфиге. Задумался. Зачем это может быть нужно… К тому же, к чему подвергать живущий проект такому риску?
Может быть я чего то в этой жизни не понимаю…evnuh
13.10.2015 19:20+7Я его использую на сервере, с peer аутентификацией под read-only юзером, а доступ запаролен на уровне веб-сервера. Он нужен для удобного просмотра данных на проде, посмотреть что там с данными у пользователей по багрепортам и выяснить кто дурак — юзер, сервер или я. Порой делать это надо не всегда, когда под рукой рабочий ноут.
Отвечу вам и сразу всем, кто ратует за безопасность и проброс портов вкупе с десктопными программами. Ответ же очевиден, почему люди используют веб-морды — это удобно. Это действительно очень удобно. Это плохо, но это удобно, с этим явно не поспоришь. Типичный веб-разработчик, все его знают, для него в разы быстрее залить файл на сервер и готово, чем ставить софт на всех его девайсах, пробрасывать порты на разных ОС уметь, ну.
Wedmer
13.10.2015 19:44Эта мешанина потом пакуется в один файл. Наверное поэтому там inline html.
faiwer
13.10.2015 19:53Эмм. Логика ускользает от меня. А что мешает собрать все вьюхи в тот же самый массив? Скорее это code-style такой. Интересно, а как там с magic quotes :)
Wedmer
13.10.2015 20:49Не знаю. По мне inline html как то дико смотрится. С шаблонами оно все красивее было бы.
Fesor
14.10.2015 00:37+3а как там с magic quotes
волшебные кавычки выпилины из PHP черти когда. Больше их нет, народ все еще стыдится что это было.
Nastradamus
13.10.2015 20:28Просто стоит попробовать использовать постгревую консоль. Разница между mysql-консолью и postgres — как между cmd.exe и bash. Заставить себя поюзать пару дней и забыть о гуи/ веб-морде как о страшном сне.
romy4
13.10.2015 20:40Не могли бы вы сделать какой-нибудь diff для патча json формата? Я сравнил файлы с офсайта и с вашей ветки, там драйвера postgre идентичны.
Mercury13
13.10.2015 20:47Пользуюсь по-чёрному, в те минимальные задачи, которые приходится делать по вебу, вписывается на 100%. И маленький.
maseal
13.10.2015 22:39+9Иногда лучше в код подобных вещей даже не заглядывать, чтобы не портить впечатление от удобной на вид вещи.
Самок худшее моё воспоминание в этом плане — проект, который хотели нам отдать на поддержку: внешне симпатичная и удобная интранет-система управления, ожидалось, что внутри будет что-то более-менее адекватное. А внутри был реальный АД с большой буквы: весть проект состоял из двух файлов на Visual Basic общим весом в исходниках около 10 MB, которые компилировались в DLL, которая прицеплялась к IIS в виде ISAPI-модуля. А внутри самих этих файлов было развесистое многоуровневое дерево из IF-ов, где конкатенацией строк генерился HTML. И в каждой из ветвей море копипаста, но с небольшими «нюансами».
Просто хотелось посмотреть в глаза человеку, который всё это начал и сказать ему много всего.
Fibril
14.10.2015 02:16Пользуюсь этим скриптом довольно давно. Ничего удобней не встречал. Как минус — есть некрасивые внешние запросы, теоретически позволяющие получить некоторую информацию о базе данных и ее использовании, легко лечится.
bIbI4k0
14.10.2015 06:19Весьма годный инструмент. Кстати, если нет полноценного веб-сервера, можно запускать через встроенный в php сервер:
php -S 127.0.0.1:8080 -t /path/to/adminerDir/
ketrin7
14.10.2015 07:51Действительно, кроме РМА, даже не задумывалась поискать что-то другое. Отправила ссылочку нашему админу, может заинтересуется
pesh1983
14.10.2015 09:42+1Ещё один плюс использования десктоп-клиентов — отсутствие на сервере php) Я разрабатываю проекты на Python, мне намного удобнее не зависеть от серверного окружения. Там может быть Perl, Php или Python, неважно. Да и серверов может быть много, в этом случае удобнее в одном клиенте хранить настройки ко всем БД на всех серверах
phoenixweiss
14.10.2015 10:48+1Я никогда не ставлю интерфейсы для работы с БД на сервер и тем более никогда в открытом виде. В работе использую Sequel Pro для OS X который коннектится к БД через ssh-туннель на сервер, авторизация на котором возможна только по RSA-ключам (все пароли отключены вообще, кроме root-пароля для MySQL).
Fesor
14.10.2015 11:24вы можете настроить ssh тунель локально и подключаться через этот скриптик со своего компа. В целом я вообще не вижу смысла, psql очень даже удобная штука, особенно если в качестве pager-а использовать less.
phoenixweiss
14.10.2015 12:27И смысл меня минусовать? Я описал конкретный кейс как работаю. Да, я могу настроить ssh-туннель локально и подключаться через этот скриптик со своего компа, но зачем? В чем глобально будет качественное различие с моим решением?
Пока это звучит примерно так:
— Я езжу на праворуком седане
— Но вы же можете пересесть на леворукий хэтчбек!
А задача например стояла просто добираться до работы каждый день.
MaxZN
14.10.2015 14:06Аналогично. Только использую NavyCat под Ubuntu. Хорошая штука, много чего умеет. Кстати, кто чем пользуется под Linux из аналогичных инструментов?
rieder
15.10.2015 10:42Могу посоветовать DBeaver. В России на удивление мало известен, хотя сделано у нас. Симпатичное, уйма фич, любые базы, фришное, опенсорсное.
MaxZN
16.10.2015 10:10Ай спасибо!) Как я давно искал что-то подобное под линукс. По функционалу тот-же самый NavyCat, который тоже хорош, но под линукс, только под вином) Кто знает, как ставятся виндовые проги под линукс — меня поймут.
stychos
16.10.2015 02:35+1Начиная с какой-то там версии, лично у меня pma начал жутко глючить и тормозить (слишком они увлеклись навешиванием всякого js, имхо), тут же перешёл и всем советую использовать именно админер. А узнал о нём именно от тебя, автор =)
Насчёт кода — далеко не всё так плохо. И у них, как я понял, одной из целей разработки являлась совместимость с PHP4, да и его ещё можно читать и понять. Если хочешь увидеть действительно ужасный код — добро пожаловать сюда, например.
prog666
Я почему-то думал что все давно знают про него и пользуются…
evnuh
Я тоже был крайне удивлён, что в комментариях к статье никто не упоминал про него, под конец дискуссии один робкий человек только предложил.
rakot
Я не робкий =) но ссылками в комментах на хабре стараюсь быть осторожным.