Pull to refresh

Comments 75

Прога полезная, пользуюсь около месяца.
Правда, после SQL Server Management Studio долго привыкал: непривычные для меня хоткеи, нет drag&prop скриптов, мешается скрипт, открытый первым (который нельзя закрыть), плохое определение UTF-8 кодировки.
Но работать с программой можно!
Вам спасибо, завтра проверю что нового (я ещё не обновлялся).
> почему чел НЕСКОЛЬКО РАЗ В ДЕНЬ выкладывает новые билды своего проекта.
А куда их девать то? Наверное, тестеров у него нет.
Это же старый новый MySQL-Front. Помню его еще 2.5й версией…
отличный клиент, пользуюсь уже наверно больше года. радует что работает и под wine
а я под мак пользуюсь Sequel Pro – тоже неплохо
Я не знаком с Navicat. Под вин использовал Хайди, под маком уже Sequel Pro. Хайди лучше лучше, но Sequel тоже неплох
Кстати, единственная программа из-за которой не могу отказаться от wine.

MySQL WorkBench тормозной и питонячий, но хоть без вайна работает.

Новые билды автоматом собираются CI сервером и выкладываются. Там же написано
Latest automatically compiled main executable for HeidiSQL
Мне в нем не нравится, что нельзя принудительно выбирать кодировку клиента, также нельзя выбирать кодировку при импорте/экспорте данных. А в остальном, замечательный клиент, а главное — бесплатный
пользуюсь Mysql Workbench, и проблем не знаю)
dbForge Studio for MySql (для СНГ бесплатно)
— удобный редактор запросов, в том числе визуальный
— удобный редактор объъектов БД.
— отладка процедур и функций, в том числе пошаговая
— и еще всякие приятные плюшки.
Спасибо за наводку, когда буду в винде с БД работать, обязательно посмотрю.

Mysql workbench кроссплатформенный)
Поддерживаю, это самый лучший, гибкий и мощный инструмент. К сожалению под Mac OS не смог найти альтернативы достойной dbForge :(

www.devart.com/ru/dbforge/mysql/studio/
Люди, вы только попробуйте это :) Я раньше тоже сидел на HeidiSQL
да он же… никакой. Не знаю, у меня на маке он работает мягко говоря с глюками, вылетает иногда. Мне к сожалению он вообще не понравился, ни на маке, ни на винде :( после dbForge — всё кажется таким… никаким :/
Ниже давали ссылку на SequelPro
Не знаю как на маке, но в убунте работает нормально. К тому же там есть все что надо, так что не надо говорить что он никакой ;-)
Один знакомый программист использует её под Ubuntu.
Правда, не без интерфейсных глюков.
Зачем так извращаться? Я уже давно MySQL Workbench использую под Ubuntu и довольный как слон тоесть дельфин.
Мон пардон, писал про Heidi
Там есть diff данных и структуры который удобен и работает.
Спасибо за наводку, поставил.
Первое впечатление — значительно медленнее работает, чем HeidiSQL, если через SSH туннель.
Я пользовался им для одного нетривиального проекта (под линуксом и под виндой). И у него есть следующие проблемы:
1. Вылетает без предупреждений и отчетов. Просто падает в совершенно случайных местах.
2. Интерфейс не продуман, особенно в плане клавиатурных сочетаний. Для синхронизации надо нажать далее раз 5, а если была ошибка, то лезть искать ее в логах.
3. Очень криво синхронизируется с мускулом. Теряет ASC/DESC. Медленный.

Резюме — под линукс никаких альтернатив нет вообще :)
Может, у меня версия по новее, иначе я не могу объяснить тот факт, что он у меня за все время работы(более, чем пол года) падал 1 раз)

В плане интерфейса согласен)
Есть что-нибудь похожее для PostgreSQL?
Рекомендую dbForge Studio for MySQL от DevArt ( www.devart.com/ru/dbforge/mysql/studio/benefits.html ). Русская версия бесплатна, может подключаться к базе несколькими способами, имеется сравнение и синхронизация данных и структур, продвинутый текстовый и графический редакторы с визуальным построением схем и запросов, система отчетов и администрирования базы. Очень удобная вещь.
Мда, чтобы скачать у них программу, нужно обязательно регистрироваться. Ну что за бред.
Тоже ипользую связку Sqlyog (для синхронизации и PHP-тонеля) и HeidiSQL для всего остального
Если Mac — то рекомендую попробовать Sequel Pro.
Бесплатный, симпатишный, быстрый, гибкий :)
Поддерживаю! Не думал что можно сделать такой приятный MySQL клиент, пока не начал пользоваться. А до этого сидел на Chive, ибо все-таки интерфейс phpMyAdmin уже морально устаревает.
А как в нем открыть новый таб? Не для SQL запроса, а для всего остального. Чтоб не сохранял каждый раз.
>> для timestamp полей он ставит по дефолту не «DEFAULT CURRENT_TIMESTAMP», а «DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP»

Судя по документации dev.mysql.com/doc/refman/5.0/en/timestamp.html такое поведение для поля timestamp является поведением «по умолчанию». Так что тут дело не в клиенте.
повторяю, он пишнт, что просто курренттаймштамп, а по факту ещё и он апдейт
Я не знаю как это выглядит в интерфейсе, но подозреваю что он просто не может это нигде отразить.
Просто все девелоперы должны знать что timestmap по умолчанию в mysql так работает.
timestamp в mysql ни как не работает, это тип данных. Но для поля можно установить значение по умолчанию CURRENT_TIMESTAMP. В таком случае при добавлении новой записи, если поле имеет значение NULL, ему присваивается текущее время. ON UPDATE это тригер, который присваивает текущее время при каждом обновлении записи. В интерфейсе приложение должно разделять значение по умолчанию и тригер при обновлении.
Все что вы описали «должно» работать, но фактически (раз уж мы имеем дело с mysql) дела обстоят не так.

Создайте MyISAM таблицу и попробуйте сделать там поле типа timestmap.
Для полного контроля я сделал это в консольном клиенте.

так это было:
mysql> CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`updated` timestamp NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Query OK, 0 rows affected (0.01 sec)

mysql>describe test;
+---------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+-------------------+-----------------------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| updated | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------+------------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.00 sec)


Как видно, триггер на апдейт устанавливает база а не клиент.
Всё что я описал работает в MySQL именно так как и должно работать.

При создании новой таблицы, только для ПЕРВОГО поля типа timestamp СУБД выставляет значение по умолчанию CURRENT_TIMESTAMP и сам создаёт тригер, если клиент не указывает своё значение.
Если указать default CURRENT_TIMESTAMP, то тригер создан не будет. Таким образом в интерфейсе можно отобразить всё правильно, по крайней мере Mysql Workbench здорово с этим справляется :)
Если я через графический клиент создаю таблицу, то до факта создания таблицы клиент не знает будет ли создан триггер на апдейт или нет.
Поэтому вполне понятно почему этого не видно в интерфейсе.

Если представить что пользователь работает только с консольным клиентом, то в его «интерфейсе» (если его можно так назвать), эффект такой же. Пишете вы одно, а получаете другой результат.

Поэтому, глобально, я считаю, что создание триггера без явного на то указания и есть причина проблемы. Предлагаю закрыть обсуждение, все вроде как поняли суть происходящего.
А то щас обсуждение перерастет в mysql-vs-неmysql холивар.
В последнее время это очень круто — доказывать свою правоту, не зная проблемы.
Вы интерфейс sqlyog`а видели? Использовали его?
То, что mysql по дефолту ставит current_timestamp и вешает триггер, спасибо кэп, вкурсе. Вы видели, как это отображает sqlyog?
SQLYog его отображает также как и консольный клиент mysql. Т.е никак.
Я имею ввиду что это неявное поведение базы данных а не клиента. И в этом суть проблемы.
к сожалению проблема не в этом. Проблема в том, что даже если указать в ёге ЯВНО on update, то потом этого on update НИГДЕ НЕ ВИДНО.
Он просто не умеет показывать в своем интерфейсе такие триггеры.
Если создать триггер через create trigger, то он будет виден в списке триггеров. Но это другое. А такой вот неявный триггер не виден. Вообще. И это таки проблема, да :(
Можете порекомендовать клиента для iPad? Можно в виде веб-морды.
Визуальными конструкторами никогда не пользовался, пишу исключительно на SQL, думаю как и любой другой разработчик, который занимается только СУБД. Для себя испробывал все инструменты. Для Linux платформ лучше белки нету. Для винды:
dbForge Studio for MySQL от DevArt — имел реальный проблемы с форматированием кодов процедур и запросов, с год назад был жутко багнутый. Отладка процедур в MySQL ваще песня — поржал. По мимо этого, тоже ввиду багов, так и не смог нормально настроить клиента на возвращение резалтсета в том же окне без фетчинга всех данных запроса.
жаба которую я клинически неперевариваю, так как раньше работал с PL/SQL Developer, но достойной замены её пока нет. Там нормальный форматтер и удобные макросы. Есть конечно глюки с прерыванием запросов, но это меньшее из зол. В итоге юзаю её сейчас.
Офигеть, столько пользовался локально и не знал что там есть ssh туннель, поэтому на сервере всегда держал phpmyadmin.
Спасибо :)
>Иначе я не могу объяснить, почему чел НЕСКОЛЬКО РАЗ В ДЕНЬ выкладывает новые билды своего проекта.
www.heidisql.com/download.php
Это же ППЦ, сайты реже обновляются, а тут прикладной софт.
Всем приятной недели )
p.s. а ещё на сайте проекта есть иссусий трекер!

И чего? Я так тоже делал когда какие-то мелочи тестил, благо создание билда — минута!
Это всё понятно, но человек выкладывает, например, синхронизатор структур. Все бегут его тестить, а он не пашет. Интерфейс есть, функционала нет. Чел отписывает, что мол да, он пока его не закончил ))) но билд с интерфейсом уже есть.
Нет ничего лучше Mysql Query Browser ;)

Только версия должна быть правильная. У меня 1.2.17
Ну а для ssh-туннелей нет ничего лучше Putty ;)
ну а когда у тебя десяток серверов постоянных + постоянно добавляются/удаляются сторонние, это безумно удобно, конечно )))
нет, если ssh нужен только для ssh-туннеля к mysql, то putty конечно неудобен.
HeidiSQL писали люди, которым ещё не рассказали, что нельзя выполнять сетевые операции в UI-потоке.
не, можно и в UI потоке выполнять если операции неблокирующие))
Пытаюсь запустить всё это под wine
Heidi и plink работают хорошо, но соединится не могу.
Sql error: locst connection to Mysql Server…

Подскажите настройки или как проверить что не работает
Так как приходится работать и с MySQL, и c PostgeSQL, и с Oracle, то единственным выходом для себя нашел Navicat (http://navicat.com/).

Могу сказать уверенно – это лучшее из того, что я видел. Есть версии под Mac, Linux и Win.

Версия под Linux невероятно глюкавая, запускается через wine. В остальном отличный клиент, дороговат только.
Я что-то пропустил? Зачем SQL-клиенту нужна поддержка SSH-туннелей, когда SSH может пробрасывать порты на локальный хост?
Это не необходимость а удобство.
Согласитесь удобнее даблкликнуть по закладке чем набирать в консоли нефиговую строчку для проброса тунеля?
Сколько удалённых баз данных вы поддерживаете каждый день?
Это — секретная информация!
Пользуюсь Navicat, даже на работу купил лицензию. Рекомендую! Есть синхронизация структуры/данных, перенос и все остальное. Супер.
Только под винду…
Лучший, ИМХО, mysql клиент под Mac — Sequel Pro.
Еще бы что-то подобное было под постгрю...(
Со сколькими мучениями приходится сталкиваться разработчику под windows :)
Пользуюсь года 1,5
Более удобного и шустрого бесплатно клиента под Win я не встречал.
> Иначе я не могу объяснить, почему чел НЕСКОЛЬКО РАЗ В ДЕНЬ выкладывает новые билды своего проекта.

Выше уже написали, что это автомат. Вообще многие проекты так делают. PHP, например.
Несмотря на постоянные обновления, некоторые простые вещи там годам не появляются, а многие вещи просто бесят неудобством после Mysql Front.
Например, их синхронизация таблицы из A в B через maintenance не копирует триггеры, затирая страрые (Drop Table же).

Сами тригеры показываются не рядом с полями таблицы, а чёрт знает где отдельно сами по себе. Копирование тригеров через Copy/Paste не работает (в mysqlfront кстаити тоже).

Идиотский после MysqlFront способ отображения полей и индексов. В MysqlFront я сразу в одном месте вижу и ключи, и поля, сразу вижу из чего состоит ключ, и даже в каком порядке. В Heidi же тупо нарисованы ключи рядом с полями, и на отдельной вкладке индексов названия индексов, но чтобы увидеть из чего они состоят, надо каждый раскрывать.

Нет быстрой строки фильтра, как в mysqlfront, где я быстро могу написать условия WHERE.

Нет автосохранения Query, он ещё и каждый раз спрашивает при закрытии сохранять ли и куда.

Неработающий уже много лет модуль Synchronize Database, который по нажатию Analyze тупо в Difference добавляет имя выделенной таблицы.

Буду рад если это всё увидять разработчики и исправят.
Всё это делал, бесполезно. Вот например code.google.com/p/heidisql/issues/detail?id=3148, ничего не хочет менять.
В итоге если переносить данные через HeidiSQL, то дропаются тригеты этой таблицы. Сами тригеры же вообще ничем не перенести — ни через maintenance/transfer, ни через copy/paste.
Благо хоть старый добрый MysqlFront сейчас тоже стал opensource и развивается.
Sign up to leave a comment.

Articles