Main view of a session, with the database tree on the left and details on the right
|Original author(s)||Ansgar Becker|
|Stable release||8.3 / January 25, 2014|
|Written in||Object Pascal|
HeidiSQL, previously known as MySQL-Front, is a free and open source client, or frontend for MySQL and its forks like MariaDB and Percona Server, developed by German programmer Ansgar Becker and a few other contributors in Delphi. To manage databases with HeidiSQL, users must login to a local or remote MySQL server with acceptable credentials, creating a session. Within this session users may manage MySQL Databases within the connected MySQL server, disconnecting from the server when done. Its feature set is sufficient for most common and advanced database, table and data record operations but remains in active development to move towards the full functionality expected in a MySQL Frontend.
Ansgar Becker began development on a MySQL Frontend 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 up to version 2.5, until in April 2006, Ansgar 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 the version 3.0 major release in April 2006.
Due to shortcomings in SourceForge project hosting and other comparative advantages (such as performance, features), Ansgar shifted HeidiSQL's code repository and bug/feature tracker hosting to Google Code in May 2008. HeidiSQL was then rewritten to use a custom database-interface implementation rather than existing libraries.
Since the 8.0 release, HeidiSQL offers its GUI in ~22 languages other than English. Translations are contributed by users from various countries via Transifex.
- 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 Tunneling protocol (SSH)
- Multiple parallelly running sessions in one window
- Manage users on 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 statistic 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
- View all databases on 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 coallation, drop (delete) databases
- Tables, views, procedures, triggers and events
- View all objects within 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
A version written in Java, which is designed to work on Mac and Linux computers, also exists. The jHeidi project has been discontinued since March 2010. http://www.heidisql.com/jheidi/
- mysql.pas - Client API for MySQL Database Servers, by Matthias Fichtner
- ZeosLib - Delphi database components for MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle and SQLite, SourceForge
- Partial list of major features, HeidiSQL.com
- Screenshots of GUI features and descriptions, HeidiSQL.com