HeidiSQL — клиент к mysql/mssql серверам

    imageПриветствую.
    Когда перед мной встал вопрос о переходе с phpmyadmin на любой другой клиент, поддерживающий ssh туннели, я перепробовал много что. Остановился на sqlyog`е. Помимо более менее понятного интерфейса, он умел синхронизировать структуры баз данных. И в общем мирился со всеми его странностями и неудобствами. Однако столкнувшись с тем, что для timestamp полей он ставит по дефолту не «DEFAULT CURRENT_TIMESTAMP», а «DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP» и при этом постоянно врёт, что это просто «DEFAULT CURRENT_TIMESTAMP» (т.е. визуально ON UPDATE нигде не отображает), моё терпение лопнуло. В поисках нового клиента, я открыл для себя гениальное, необычное, удобное и простое решение — HeidiSQL.

    image
    Клиент справляется со всеми задачами mysql клиента на твёрдую 4-ку. Впервые я вижу юзабельный интерфейс, удобный и приятный. Из минусов отмечу, что синхронизации структур нет, пока… но пока для этого sqlyog подходит.
    Да и поговорить хотелось не о этом. Столкнувшись с этим проектов и поизучав его, я сделал несколько выводов:

    — В Германии очень клёвые наркотики.
    — В Немецких системах контроля версии нет функции ветвления проекта.
    — В Германии в конце лета нечем заняться.

    Иначе я не могу объяснить, почему чел НЕСКОЛЬКО РАЗ В ДЕНЬ выкладывает новые билды своего проекта.
    www.heidisql.com/download.php
    Это же ППЦ, сайты реже обновляются, а тут прикладной софт.
    Всем приятной недели )
    p.s. а ещё на сайте проекта есть иссусий трекер!

    Похожие публикации

    Средняя зарплата в IT

    110 475 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 6 942 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 75

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                                                              Буду рад если это всё увидять разработчики и исправят.
                                                                                0
                                                                                Это все лучше в трекер к ним — code.google.com/p/heidisql/issues/list ;)
                                                                                Судя по логу www.heidisql.com/download.php, баги фиксяться по паре штук в день.
                                                                                  0
                                                                                  Всё это делал, бесполезно. Вот например code.google.com/p/heidisql/issues/detail?id=3148, ничего не хочет менять.
                                                                                  В итоге если переносить данные через HeidiSQL, то дропаются тригеты этой таблицы. Сами тригеры же вообще ничем не перенести — ни через maintenance/transfer, ни через copy/paste.
                                                                                  Благо хоть старый добрый MysqlFront сейчас тоже стал opensource и развивается.

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

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