HeidiSQL
# HeidiSQL

HeidiSQL is a free and open-source administration tool for MariaDB, MySQL, as well as Microsoft SQL Server, PostgreSQL and SQLite. Its codebase was originally taken from Ansgar Becker's own MySQL-Front 2.5 software. Due to having sold the MySQL-Front branding to an unrelated party, Becker chose "HeidiSQL" as a replacement. The name was suggested by a friend as a tribute to Heidi Klum, and was further reinforced by Becker's own nostalgia for Heidi, Girl of the Alps.

A version written in Java, jHeidi, was designed to work on Mac and Linux computers. It was discontinued in March 2010 in favor of Wine support.

## History

Ansgar Becker began development on a MySQL front-end in 1999 naming the project "MySQL-Front" and used a direct API layer written by Matthias Fichtner to interface with MySQL servers and contained databases. Private development continued until 2003 with version 2.5.

In 2004, during a period of inactivity, Becker sold the MySQL-Front branding to Nils Hoyer, who continued development by cloning the original software.

In April 2006, Becker open-sourced the application on SourceForge, renaming the project "HeidiSQL". HeidiSQL was re-engineered to use a newer and more popular database-interface layer, ZeosLib, which debuted in version 3.0.

The database layer was again replaced by a single-unit approach in October 2009 by Becker. Later, this was again extended for supporting other database servers.

Support for Microsoft SQL Server was added in March 2011 for the 7.0 release.

Since the 8.0 release, HeidiSQL offers its GUI in about 22 languages other than English. Translations are contributed by users from various countries via Transifex.

PostgreSQL support was introduced in March 2014 for the 9.0 release.

In early 2018, a slightly extended v9.5 release was published on the Microsoft Store.

SQLite support was introduced in March 2020 for the 11.0 release.

## Features

HeidiSQL has the following GUI features and capabilities.

* Server connection
   * Multiple saved sessions with connection and credentials stored within
   * Compressed client/server protocol for compatible servers
   * Interface with servers via TCP/IP, named pipes (sockets) or a tunneling protocol (SSH)
   * Multiple parallelly running sessions in one window
   * Manage users on the server: add, remove and edit users, and their credentials
   * Manage user privileges globally and per database
   * Export databases to SQL files or to other servers
   * Multiple query tabs, with each one having multiple subtabs for batch results
* Server host
   * View and filter all server variables, such as system_time_zone
   * Edit all server variables, either for this session or with global scope
   * View server statistical variables, and average values per hour & second
   * Currently running processes to analyze executed SQL and to kill bad processes
   * View command-statistics with percentage indicator bars per SQL command
* Databases
   * View all databases on the server, connect to a single database to work with its tables and data
   * View connected databases' total and table size in KB/MB/GB within the database/table tree structure
   * Create new, alter existing databases' name, character set and collation, drop (delete) databases
* Tables, views, procedures, triggers and events
   * View all objects within the selected database, empty, rename and drop (delete) objects
   * Edit table columns, indexes, and foreign keys. Virtual columns on MariaDB servers are supported.
   * Edit view query and settings
   * Edit procedure SQL body and parameters
   * Edit trigger SQL body and settings
   * Edit scheduled event SQL body time settings
