HeidiSQL

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:24, 24 января 2018.
HeidiSQL
Heidisql logo.png
Создатели: Ansgar Becker
Выпущена: April 2006 [1]
Постоянный выпуск: 9.4.0[2] / 20 October 2016 года; 5 years ago (2016-10-20)
Состояние разработки: Активное
Написана на: Object Pascal
Операционная система: Microsoft Windows XP и позднее, под Wine на Linux и новых версиях MacOS [3]
Локализация: Английский язык
Тип ПО: Database management client
Лицензия: GNU GPLv2
Веб-сайт heidisql.com

HeidiSQL — многофункциональное свободно распостраняемое приложение с открытым исходным кодом для веб-разработчиков, использующих одну из популярных технологий: MySQL сервера, БД Microsoft SQL или PostgreSQL. Она позволяет просматривать и редактировать данные, создавать и изменять таблицы, представления, процедуры, триггеры и события в расписании. Она также предотавляет возможность экспортировать структуры и данные в SQL-файлы, буфер обмена или переносить на другие сервера.

Основные возможности

  • Подключение к различным серверам в одном окне
  • Подключение к серверам через командную строку
  • Подключение через SHH туннель, передача настроек по SSL
  • Просмотр и редактирование данных, создание и изменение таблиц, предствалений, процедур, триггеров и событий в расписании
  • Экспорт SQL-файлов, их последующее сжатие или выгрузка в буфер обмена
  • Прямой перенос с одного сервера/БД на другой сервер/другую БД
  • Управление пользовательскими правами
  • Импорт текстовых файлов
  • Экспорт таблиц из файлов в форматах CSV, HTML, XML, SQL, LaTeX, Wiki Markup and PHP Array
  • Просмотр и редактирование табличных данных с помощью наложения удобной сетки
  • Объемный инструментарий для редактирование таблиц (перенос в БД, смена движка, сравнение и т.д.)
  • Порционное добавление ASCII или двоичных файлов в таблицы
  • Настраиваемый редактор написания запросов с подстветкой синтаксиса и автодополнением
  • Мониторинг и остановка процессов клиента
  • Поиск строки во всех таблицах во всех БД на всех серверах
  • Оптимизация и восстановление таблиц пакетным способом
  • Запуск параллельного процесса mysql.exe в командной строке с использованием текущих настроек подключения

Базовые операции в HeidiSQL

Подключение к серверу

Простое подключение
HeidiSQL — клиентское приложение, пригодное к использованию только при наличии сервера. Убедитесь, что у вас запущен и настроен для подключения MySQL, MS SQL or PostgreSQL сервер.
В простейшем случае MySQL сервер устанавливается на локальную машину (localhost, доступна по специальному IP-адресу 127.0.0.1). Откройте менеджер сессий в HeidiSQL, нажмите на кнопку "New" для создания нового подключения. Практически все настройки по умолчанию уже установлены, как вам надо. Вам потребуется только ввести пароль, так как в новых сборках MySQL сервера он по умолчанию устанавливается.

Подключение к серверу с помощью HeidiSQL


Вы можете организовать хранение сессий в папках. Для создания папки нажмите на стрелочку вниз сбоку кнопки "New", затем нажмите "Folder in root folder" (Папка в корневой директории) или "Folder in selected folder" (Папка в выбранной директории). После создания папки вы можете создать в ней подключения или перенести в неё существующие подключения.

Посдключение к MySQL серверу через SSH-туннель

Даже если ваш MySQL сервер расположен на удалённой машине, доступной только через SSH, вы по прежнему можете использовать HeidiSQL для подключения. Вам потребуется допольнительно plink.exe из проекта PuTTY. Сохраните его на диск, укажите путь к нему в HeidiSQL и введите логин пароль для SSH-подключения и базы данных MySQL.

Обратите внимание, имя хоста по умолчанию указано в настройках во вкладке "Settings". HeidiSQL командует plink.exe командует подключиться к этому хосту или использует то, которое было указано вами в SSH host name. Кроме того, имя хоста на вкладке "Settings" всегда используется при задании ключа -L (listen) в plink.exe.

Подключение к серверу через SSH-тунель с помощью HeidiSQL


Пример настроек:

  • Вкладка "Settings":
    • Hostname: "127.0.0.1"
    • Password: [ваш пароль mysql]
    • Port: "3306" в большинстве случаев
  • Вкладка "SSH tunnel":
    • SSH Host: [имя вашего сервера]
    • Port: "22" в большинстве случаев
    • Username: [имя пользователя ssh]
    • Password: [пароль ssh]
    • Local port: "3307"

Следующая ошибка (или похожая) чаще всего возникает при подключении к удалённому серверу по IP-адресу.

Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"

В случае её возникновения убедитесь, что вы используете "127.0.0.1" во вкладке "Settings" -> "Hostname/IP" и IP-адрес удалённого сервера во вкладке "SSH tunnel" -> "Host".

Интерфейс командной строки

Хотя HeidiSQL изначально проектировалось как приложение с графическим интерфесом, такие задачи как подключение к серверу и открытие файлов могут быть с её помощью автоматизированы с использованием командной строки. Имена параметров регистрозависимы и основаны на используемых в консольных приложениях MySQL, например, mysqldump. Запускайте HeidiSQL, используя полное имя ("heidisql.exe"), а не укороченную версию ("heidisql"), так как на данный момент того требует парсер аргументов командной строки. В будущем это будет исправлено.

Короткий ключ Длинный ключ Описание Значение по умолчанию
-d --description Имя секции
-n -nettype Тип сетевого протокола:
0 = MySQL (TCP/IP)
1 = MySQL (named pipe)
2 = MySQL (SSH tunnel)
3 = MSSQL (named pipe)
4 = MSSQL (TCP/IP)
5 = MSSQL (SPX/IPX)
6 = MSSQL (Banyan VINES)
7 = MSSQL (Windows RPC)
8 = PostgreSQL
0
-h --host Имя хоста
-u --user Имя пользователя
-p --password Пароль
-P --port Порт 3306
-S --socket Имя сокета для соединения через именованные каналы
-W --winauth Использование Windows authentication: 1 или 0. (только MSSQL). Добавлено в r5108 0
--ssl Использование SSL. (1=да, 0=нет) 0
--sslprivatekey SSL private key
--sslcacertificate SSL CA certificate
--sslcertificate SSL certificate
--sslcipher SSL cipher
--psettings Собственнное наименование для файла настроек. Игнорируется, если файла не существует. portable_settings.txt (если существует)

Примеры

Запуск с использованием сохранённой сессии "xyz":

 c:\path\to\heidisql.exe -d=xyz
 c:\path\to\heidisql.exe --description=xyz

Подключение с отличающимся имянем пользователя и портом:

 c:\path\to\heidisql.exe -d=xyz -u=OtherUser
 c:\path\to\heidisql.exe -d=xyz -P=3307

Подключение к несохранённой сессии:

 c:\path\to\heidisql.exe -h=localhost -u=root -p=Mypass -P=3307

Открытие нескольких файлов .sql во вкладках запросов:

 c:\path\to\heidisql.exe fileA.sql path\to\fileB.sql fileC.sql ... 

Использование файла настроек:

 c:\path\to\heidisql.exe --psettings=c:\temp\p.txt

Дерево БД

Если ваша база данных содержит множество таблиц, представлений или чего-то подобного, вам будет полезно сгруппировать их по типам. Для этого нажмите ПКМ на дереве и активируйте опцию "Group objects by type" (сгруппировать объекты по типам).


Дерево БД: группировка объектов по типу


Вы так же можете помечать важные элементы как избранные, нажав в самой левой области таблицы напротив элемента. После этого вы можете скрыть элементы, не помечнные как избранные, нажав на кнопку "Show only favorites" (показать только избранные элементы) над деревом.


Дерево БД


Создание таблицы

Графический интерфейс HeidiSQL предоставляет широкие возможности для создания и редактирования табличных данных. Для создания новой таблицы просто кликните ПКМ на нужной вам базе данных, выберите пункт "Create new" (создать заново), затем — "Table" (таблица).


Создание таблицы


Проделав это, вы должны увидеть редактор таблиц как на скриншоте ниже:


Создание таблицы в редакторе


Создание представления

Создание представления


Создание хранимой процедуры

Для создания процедуры нажмите ПКМ на нужной вам базе данных, затем выберите "Create new" (создать новый), затем — "Procedure" (процедура) или "Function" (функция). Проделав это, вы увидите редактор процедур как на картинке ниже:


Создание хранимой процедуры


Создание триггера

Создание триггера


Создание события в расписании

Создания запланированного события


Вкладка "Data"

На вкладке "Данные" отображается выбранная таблица или предстваление. Это один из самых важных и мощных интсрументов HeidiSQL. Различные типы данных подсвечиваются разными цветами. Чтобы настроить цвета, откройте Tools (Инструменты) > Preferences (Настройки) > Data appearance (Представление данынх).

Чтобы запустить режим редактирования, нажмите и удерживайте кнопку мыши над таблицей или кнопку F2 на клавиатуре. Это позволит вам занести данные обычных типов в таблицу. Для внесения специальных типов (SQL функции, NULL, GUID'ы) нажмите ПКМ на ячейке, выберите Insert value и нужный тип в выпавшем подменю.

Как быстро реализовать фильтры? Нажмите ПКМ в таблице, затем выберите Quick filter (быстрые фильтры) для доступа к различным опциям и примените оператор WHERE. Этот фильтр может быть применён к выбранной ячейке в таблице, рекомнедованному значению или к содержимому вашего буфера обмена

В подменю Quick filter (популярные фильтры) вы найдёте друг подподменю. Выберите меню как на картинке ниже, и HeidiSQL отобразит топ-30 элементов по выбранной колонке, сгруппированные по значению:


Создание фильтра


Поиск специальных значений в таблице может вызывать затруднения. Для создания простого фильтра на стороне клиента вы можете ввести некоторые значения на панели фильтров. Активируйте их, выбрав в верхней панели Edit (редактирование) > Filter panel (панель фильтров; Ctrl+Alt+F):


Панель фильтров


HeidiSQL так же дает возможность выполнять поиск и замену (Поиск: Ctrl+F, Замена: Ctrl+R), в том числе и по вкладке SQL-запросов.


Поиск и замена текста


Возможно у вас есть таблица, в которой содержатся один или более столбцов с целочисленными значениями, содержащими таймстэмпы UNIX-времени. HeidiSQL может для удобства отображать их в формате дата/время.

Вариант отображения даты/времени в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС


Выполнение SQL-запросов

По умолчанию HeidiSQL имеет вкладку "Query" (запрос). Вы можете создать больше запросов или нажав на клавиатуре Ctrl+T, или нажав ПКМ на основных вкладках и выбрав "New query tab" (новая вкладка запроса). В новой вкладке вы можете писать свои собственные запросы к БД или загрузить .sql файл со своего диска. Нажатие клавиши F9 или кнопки с синей иконкой "play" запустит выполнение вашего запроса.

HeidiSQL может выполнять коллекцию запросов (несколько запросов, разделенных точкой с запятой) за раз. Выполнение значительно ускоряется, особенное если содержит множество маленьких запросов. Для активации данного режима выполнения запросов выберите в выпадающем меню у кнопки "play" значение "Send batch in one go".


Выполнение коллекции запросов


Чтобы посмотреть, как исполняется ваш запрос в MySQL или MariaDB, вы можете активировать опцию "Query profile" (профиль запроса) в боксе справа. После этого выполните свой запрос и смотрите, что покажет профилировщик. Это то, что делает SHOW PROFILE в MySQL версии >= 5.0.37.


Результат работы профилировщика


HeidiSQL поддерживает параметризованные SQL-запросы. Активируйте их, выбрав пункт "Bind parameter", и начинайте писать параметризованные запросы, например выберите ':p'.


Пример параметризованного SQL-запроса


Первая часть реализации параметризованных запросов была сделана Адрианом Грангером.

Экспорт SQL-файлов

HeidiSQL способно экспортировать SQL-файлы. Разумеется, с этим пркрасно справляется и mysqldump. Тем не менее, с помощью HeidiSQL вы также можете экспортировать данные в:

  • .sql файл
  • сжатый алгоритмом ZIP .sql файл
  • буфер обмена
  • другую базу данных на сервере
  • новую или существующую базу данных на сервере, с которым у вас есть настроенная HeidiSQL сессия


Экспорт sql-файла


Database(s) (База(-ы) данных)
Контролирует либо а) удаление существующей БД на сервере, куда выполняется экспорт, и б) создание новой БД. Это относится только к серверу, на который выполняется экспорт и не имеет отношения к серверу-источнику.


Table(s) (таблица(-ы))
Как и в пункте выше, только для таблиц, представлений, процедур и т.д. Когда флажок установлен, таблица будет сперва удалена и/или после создана заново.


Data (данные)
Как и строки, они создаются на удалённом сервере. Для экспорта в режиме "только структуры" (structure-only export) выберите "No data". По умолчанию стоит "INSERT".


Max INSERT size (максимальный размер вставки)
Определяет максимальный размер расширенного зарпоса INSERT, который может иметь несколько строк в одном запросе. Помните, что в MySQL сервере размер запроса, приходящего на сервер, ограничен переменной max_allowed_packet. Проверьте, что вы используете меньшее значение в этом диалоговом окне, иначе MySQL сервер оборвёт ваше подключение при передаче файлов.


Output (выход)
Выберите или имя файла (сжатый zip или нет), или директорию, куда HeidiSQL поместит .sql файл, буфер обмена, другую БД или БД, сконфигурированную HeidiSQL (и имя БД ниже).


Filename, Directory, or Database (имя файла, директория или база данных)
Зависит от того, что вы выбрали в меню "output" (выход).

Портативная версия

Если при запуске HeidiSQL обнаруживает файл "portable_settings.txt", она переходит в портативный режиме. Это означает, что все настройки берутся из этого файла и сохраняются в него при выходе.

Видеоинструкция

Примечания

  1. "HeidiSQL". World Wizzy (in английский). 
  2. "HeidiSQL 9.4 released". Ansgar Becker. 
  3. "Download HeidiSQL 9.4 (20 Oct 2016)". HeidiSQL. 

Источники

  • heidisql.com [Электронный ресурс]: HeidiSQL — MySQL, MSSQL and PostgreSQL made easy / Дата обращения: 20.10.2017. Режим доступа: https://www.heidisql.com/