HeidiSQL is a Open Source Windows program in the Developer Tools category, developed by Ansgar Becker. The current version is 12.21.0.7344; you can download it safely from its official source with the download button above.
HeidiSQL is free software for people who work with databases, and aims to be intuitive to use. "Heidi" lets you connect to a variety of databases, like MariaDB, MySQL, Microsoft SQL, PostgreSQL, SQLite, Interbase and Firebird. Once you are connected, you can edit data and structures in these databases. Invented in 2002 by Ansgar, HeidiSQL is still a popular tool for MariaDB and MySQL, and actively maintained.
✨ Features
databasedb2developdevelopmentidemssqlmysqlpostgrespostgresqlprogrammingsqlsqlite
📝 Release notes (12.21.0.7344)
12.21 - 2026-08-03
⛰️ Features
- Create opt-in option for displaying columns in database tree - (f492bed)
- Enhance order of items in completion proposal, so exact matches are at the top - (c1b817b)
- For keyboard navigation on the completion proposal, wrap around the item list - (db952f8)
- First attempt to create a user manager for PostgreSQL - (f0d7103)
- Show index icons on columns in tree, and the data type text color - (e6e90aa)
- Auto-adjust width of various combo boxes - (ca9b748)
- Show table columns in tree, as child nodes - (0e20e70)
- Query size of all indexes in one query - (c5201eb)
- Display size of each index and paint a color bar behind it - (48a93d2)
- Make custom proposal popup interval effective - (500c529)
- Icons, colors and padding in completion proposal - (3d1254d)
🐛 Bug Fixes
- (ui) Exchange icon for "column" and its variants for add, delete, edit - (08558f9)
- Sporadic crash in DBtreePaintText with columns - (f76c54f)
- Enable foreign key drop down on grid field in MS SQL mode - (9f83561)
- Remove column nodes from tree in table tools dialog - (b09823e)
- Empty command line part for sshpass on FreeBSD - (ed881b3)
- Handle MONEY column types as float - (67521d4)
- Hang and wrong check states in data grid column selection on macOS - (6c5b66c)
- Invalid folder path for SQL export cannot be created if it contains a duplicated path delimiter - (4555274)
- Various CVEs regarding libssl and libcrypto - (379d28a)
- Context menu does not appear at right-click on a tree node text - (8befce3)
- Crash when opening textfile import dialog, with 0 tables in database - (83c4947)
- Crash when cancelling session manager while a session rename is active - (1da8683)
- Prevent crashes from SetFocus on various controls - (bf46821)
- Data grid header keeps showing previous table's columns on macOS - (255695d)
- Prevent SQL error "Property 'MS_Description' already exists" - (ac50b73)
- Enhance anchors on some of the table editors controls - (bfebd9e)
- Bad width of collation combo box - (a90f73c)
- File > "New window" does nothing on macOS - (0583a4e)
- Still wrong proposal background color in dark mode - (e62c47f)
- Wrong proposal background color in dark mode - (eec978c)
- Crash when opening a table, due to using the TCanvas member of a not yet visible form or frame - (bfe29c1)
- Give the trees and grids more height for the header - (568098a)
- Widen many TSpinEditEx instances to either 80px or align them with neighbor controls - (5964be6)
- Some trees have their own OnContextMenu logic set at design time, do not overwrite - (7c2870a)
- Work around unused Header.PopupMenu menu on Linux when a tree has a PopupMenu - (2030a91)
- DPI related scale glitches, mainly on completion proposal - (905b126)
- Do not paint size bar in nodes of level 2, and do not show "-" text there neither - (3e678bc)
- Bad text color for selected item in proposal - (1c46db7)
- Propose items when editor already contains a leading backtick quote - (8f12b3e)
- Missing support for custom keyboard shortcut for executing completion popup - (79f1d38)
- Glitches with padding in completion proposal, and non-restored width - (cf67d11)
- EXPLAIN actions either disabled or non-working for PostgreSQL and SQLite - (2572681)
- Hanging in a loop over result nodes by right-click on query result - (bc8f903)
- Detect release version string from Lazarus project file, and insert into Contents/Info.plist of macOS bundle - (2171b58)
- Crash during refresh on disconnected session - (0b0106d)
- When parsing the command line, make use of Application.GetOptionValue and friends, instead of ParamStr(x) with regular expressions - (f436354)
- Use default library of connection when the one from a stored session contains an invalid path/file - (51023c3)
- Refresh session tree after import per More > Import settings file - (cfca46f)
- CAS(x AS CHAR) not supported by MySQL below v4.0.2 - (e9e5263)
- Always enable release link label on update check dialog, which points to the general download page - (2d475d2)
- Prepend database name to the trigger name at the correct position, when newer MariaDB versions use IF NOT EXISTS - (27a3a51)
🚜 Refactor
- Prefer Delphi friendly SysUtils.PathDelim over System.DirectorySeparator - (84104d0)
⚡ Performance
- Avoid full string scans in StrEllipsis - (32f3bd0)
⚙️ Miscellaneous Tasks
- Update SQLite libraries to v3.53.4 - (7bfd91d)
- Ignore auto-created IntelliJ project files - (64613cf)
- Prefer macos-15 over macos-15-arm64, due to better availability of the Intel runners - (c3be9d4)
- Stick to macOS 15, because the FPC package is only officially qualified up to macOS 11 and uses a package format Apple has tightened in newer releases, so it no longer installs on the macos 26 runners. - (0c969da)
Cleanup
- TbsSeparator TToolButton's now seem to have a default width of 8px (was 6px at some point), and TStatusBar's height now has a default height of 23px (was 28px) - (660c82d)
Localize
- Update compiled .mo translation files - (3480cf4)
Note
For a list of all the changes up to date, please read CHANGELOG.md.
SHA-256: 97ACF0344313C11BB89C001425A615722B745669E5FFD542E732C418A00E22ED