Download HeidiSQL v12.21, released on 03 Aug 2026

Donate

Installation notes

Latest changes and nightly builds

Latest automatically compiled main executable and installers for HeidiSQL. Just download and overwrite your existing C:\Program Files\HeidiSQL\heidisql.exe. Be aware that these builds are not official releases and therefore probably have more bugs, possibly serious ones.

Classic Windows version v13 Preview, Current Linux and macOS versions
Ansgar Becker fix: invalid JSON export from empty grid result

Closes #2618

4c196b9: 01 Oct 2026 19:20 v12.21.0.735164bit build ≃ Installer ≃

Ansgar Becker fix: re-enable setting width of helpers box on query tabs

https://www.heidisql.com/forum.php?t=45368

bf0463b: 27 Sep 2026 15:32 v12.21.0.735064bit build ≃ Installer ≃

Ansgar Becker fix: default name for new constraint too long for MySQL

Refs #2609

0fec887: 27 Sep 2026 15:01 v12.21.0.734964bit build ≃ Installer ≃

Ansgar Becker fix: (backport of c976d17e69d3e398f614926656da2fa7c0a82fd8) keep database nodes expanded on tree refresh, and hide table tabs after dropping the object

Remember expanded database and group nodes before resetting them in RefreshTree, and expand them again afterwards.
Hide editor and data tab after the refresh if no table-like object is focused any more. Does not touch the FTreeRefreshInProgress timing, which broke saving tables in #2436.
Take over the schema of a just created object, so it gets reselected in the tree on MS SQL and PostgreSQL.

Closes #16
Closes #2431

c123ccd: 22 Sep 2026 18:08 v12.21.0.734864bit build ≃ Installer ≃

Ansgar Becker feat: Use fully qualified table name in "Select Top x rows" action when a click on it is combined with Shift

https://www.heidisql.com/forum.php?t=45359

aa0f350: 10 Sep 2026 18:18 v12.21.0.734764bit build ≃ Installer ≃

Ansgar Becker fix: use newer/renumbered MYSQL_* constants with libmysql v8+

Refs #2587

2508516: 27 Aug 2026 19:26 v12.21.0.734664bit build ≃ Installer ≃

Ansgar Becker enhance: rephrase warning message displayed when a grid edit/delete did not affect any row

Refs #2568

ca238aa: 07 Aug 2026 08:32 v12.21.0.7345

Ansgar Becker Bump version for v12.21 release

effb854: 03 Aug 2026 19:12 v12.21.0.734464bit build ≃ Installer ≃

Ansgar Becker chore: update SQLite libraries to v3.53.4

05c57aa: 03 Aug 2026 13:37 v12.20.0.7343

Ansgar Becker fix: sporadic crash in DBtreePaintText with columns

Also, do not init column nodes in FindDBObjectNode, after dblclick on a table in ListTables

Refs #2069

59ea39a: 03 Aug 2026 08:24 v12.20.0.734264bit build ≃ Installer ≃

Ansgar Becker fix: enable foreign key drop down on grid field in MS SQL mode

Refs #2567

cbdc78d: 03 Aug 2026 08:21 v12.20.0.7341

Ansgar Becker fix: remove column nodes from tree in table tools dialog

Refs #2563 and #2069

57905b0: 28 Jul 2026 19:02 v12.20.0.734064bit build ≃ Installer ≃

Ansgar Becker feat: create opt-in option for displaying columns in database tree

Refs #2069

bb5e724: 27 Jul 2026 19:59 v12.20.0.733964bit build ≃ Installer ≃

Ansgar Becker fix: handle MONEY column types as float

Refs #2564

d15df71: 27 Jul 2026 12:49 v12.20.0.7338

Ansgar Becker fix: invalid folder path for SQL export cannot be created if it contains a duplicated path delimiter

Custom output dir may already have a trailing path delimiter, only add when not
Broken in 2e290f1be155e09ef4edb50df9ed05a772f50c5c

Refs #2558

152ab70: 22 Jul 2026 09:10 v12.20.0.733764bit build ≃ Installer ≃

Ansgar Becker fix: various CVEs regarding libssl and libcrypto

Related to a bunch of critical and high rated security issues:
High CVE-2026-28388
High CVE-2026-28389
High CVE-2026-28390
High CVE-2026-31790
High CVE-2026-45447
Critical CVE-2025-15467
Critical CVE-2026-28387
Critical CVE-2026-31789

9917a4c: 20 Jul 2026 15:34 v12.20.0.733664bit build ≃ Installer ≃

Ansgar Becker fix: crash when opening textfile import dialog, with 0 tables in database

Refs #2556

03c005a: 20 Jul 2026 13:59 v12.20.0.7335

Ansgar Becker feat: show table columns in tree, as child nodes

Refs #2069

fc222fb: 17 Jul 2026 14:39 v12.20.0.733464bit build ≃ Installer ≃

Ansgar Becker fix: prevent SQL error "Property 'MS_Description' already exists"

Fire either sp_addextendedproperty or sp_updateextendedproperty for setting a MS SQL column comment

Refs #2552

0014f1b: 17 Jul 2026 08:31 v12.20.0.7333

Ansgar Becker feat: auto-adjust width of various combo boxes

refs #2551

3fca286: 16 Jul 2026 07:21 v12.20.0.7332

Lucas Daniel Alberti: fix: splitter between query editor and results not draggable on macOS

On Cocoa, the native NSTabView frame of a TTabControl extends a few pixels
above its LCL bounds (TCocoaTabControl.lclGetFrameToLayoutDelta: 6px in
Lazarus 4.4, 5px in 4.8). tabsetQuery sits right below the 5px high
spltQuery, so it covered the splitter and swallowed its mouse events.

Add a top border spacing to tabsetQuery on macOS, also for query tabs created
later.

Closes #2620

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1363b16: 01 Oct 2026 18:22 Builds

Ansgar Becker: fix: invalid JSON export from empty grid result

Refs #2618

f1a1904: 01 Oct 2026 19:18

Vibe Nuage Agent: chore: upgrade actions to Node.js 24 versions (checkout v6, upload-artifact v6, download-artifact v7, gh-release v3)

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

7ea9f11: 28 Sep 2026 19:46

Vibe Nuage Agent: fix: remove invalid -s flag from security set-key-partition-list

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

1910c5c: 28 Sep 2026 17:20

Vibe Nuage Agent: fix: correct argument order for security set-keychain-settings

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

1e108ce: 28 Sep 2026 17:14

Vibe Nuage Agent: fix: use plain string for codesign flags instead of empty array (set -u unbound variable)

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

9e777d7: 27 Sep 2026 19:37

Vibe Nuage Agent: fix: move secrets check from step if: into script (secrets context not allowed in if:)

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

072bbb0: 27 Sep 2026 19:34

Vibe Nuage Agent: feat: build, sign and notarize macOS app bundle in CI

- new build-macos-app job: Lazarus 4.8 install, make build-macos,
create-macos-app.sh bundle/sign/notarize, artifact upload
- with MACOS_CODESIGN_IDENTITY + APPLE_NOTARY secrets: full Developer ID
signing and notarization; without: ad-hoc signed fallback bundle
- signing cert imported into ephemeral keychain, cleaned up after run
- release job attaches the bundle as HeidiSQL-macos-<tag>.zip
- create-macos-app.sh: env-overridable identity/team/notary profile,
--adhoc flag, executable auto-detection (out/ vs out/macos/),
tolerant openssl@1.1 install

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

cae4e0c: 27 Sep 2026 19:26

Vibe Nuage Agent: fix: use curl -L with /download suffix for SourceForge installer download on Windows

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

2ad4009: 27 Sep 2026 18:58

Vibe Nuage Agent: feat: install Lazarus 4.8 on Windows and macOS runners, drop setup-lazarus action

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

46ea9be: 27 Sep 2026 18:55

Vibe Nuage Agent: fix: run apt-get update before installing Lazarus debs on Ubuntu

Co-authored-by: ansgarbecker <ansgarbecker@users.noreply.github.com>

35e24e8: 27 Sep 2026 18:25

Ansgar Becker: fix: re-enable setting width of helpers box on query tabs

https://www.heidisql.com/forum.php?t=45368

f17d084: 27 Sep 2026 15:32

Ansgar Becker: fix: default name for new constraint too long for MySQL

Refs #2609

91ba1d4: 27 Sep 2026 14:58

Ansgar Becker: Issue #2607: make error dialog due to wrong WHERE clause show up asynchronously

fe64c56: 27 Sep 2026 14:05

FingerlessGloves: fix: range check error when starting SSH tunnel

TProcess.ExitStatus is a signed Integer, so don't store it in a LongWord.

a834721: 18 Sep 2026 20:56

FingerlessGloves: fix: keep database nodes expanded on tree refresh, and hide table tabs after dropping the object

Remember expanded database and group nodes before resetting them in RefreshTree, and expand them again afterwards.
Hide editor and data tab after the refresh if no table-like object is focused any more. Does not touch the FTreeRefreshInProgress timing, which broke saving tables in #2436.
Take over the schema of a just created object, so it gets reselected in the tree on MS SQL and PostgreSQL.

Closes #16
Closes #2431

c976d17: 18 Sep 2026 20:40

Ansgar Becker: fix: stuck UI after firing query with SQL error on MS SQL

Refs #2601

905eb8f: 17 Sep 2026 17:59

Ansgar Becker: fix: access violation on MS SQL connections, after applying filter on data tab

Refs #2599

9a209eb: 16 Sep 2026 16:53

Ansgar Becker: fix: make some cancel buttons react on Esc key

https://www.heidisql.com/forum.php?t=45320

070ea3c: 12 Sep 2026 15:45

Ansgar Becker: feat: Use fully qualified table name in "Select Top x rows" action when a click on it is combined with Shift

https://www.heidisql.com/forum.php?t=45359

06ab070: 10 Sep 2026 18:11