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 enhance: hint at "Send batch in one go" for undeclared variables on MS SQL

Backport of 4ed6e5feda00989e6ccd9d39b6945c479c3e67c8 from the lazarus
branch to master (Delphi/Windows version). Refs #2634.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>

19e3cbf: 13 Oct 2026 21:10 v12.21.0.7361

Vibe Nuage Agent fix: fetch MS SQL binary column values via TBlobField stream in GetColBinData

ADO variant of the lazarus branch fix. Refs #1980

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

ba9df08: 10 Oct 2026 12:56 v12.21.0.736064bit build ≃ Installer ≃

Vibe Nuage Agent fix: read SQLite BLOB columns via sqlite3_column_blob instead of truncated text

Backport from lazarus branch. Refs #1980

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

5c54203: 10 Oct 2026 12:53 v12.21.0.7359

Ansgar Becker fix: wrong hex prefix/postfix for PostgreSQL, insecure break after testing 1024 characters in IsHex

Refs #1980

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

e8979be: 10 Oct 2026 12:15 v12.21.0.7358

Ansgar Becker fix: hide LIKE quick filters in context menu of binary grid values, which would now be broken through quoted hex values

Refs #1980

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

e61ffdc: 10 Oct 2026 12:06 v12.21.0.7357

Ansgar Becker fix: use correct hex prefix/postfix on MS SQL and PostgreSQL, allow odd length of hex body in MySQL

Refs #1980

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

68a291a: 10 Oct 2026 11:57 v12.21.0.7356

Ansgar Becker fix: wrong IsHex result on non-MySQL connections, prevent escaping quotes in SQLite hex values x'aa...'

Refs #1980

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

53df50a: 10 Oct 2026 11:32 v12.21.0.7355

Ansgar Becker fix: use connection specific hex prefix and postfix when editing binary values in grid

Refs #1980

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

2c48500: 09 Oct 2026 19:36 v12.21.0.7354

Vibe Nuage Agent fix: implement TSQLiteQuery.GetColBinData for byte-exact BLOB access

Refs #1980

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

770f19c: 08 Oct 2026 20:47 v12.21.0.7353

Ansgar Becker fix: assign SQLite procedures sqlite3_column_blob and sqlite3_column_bytes to TSQLiteLib

Refs #1980

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

bd3ab46: 08 Oct 2026 20:34 v12.21.0.7352

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: localize: update compiled .mo translation files

55fb44e: 13 Oct 2026 21:19 Builds

Ansgar Becker: fix: missing translation for error message

Refs #2634

a87845f: 13 Oct 2026 21:17

FingerlessGloves: enhance: hint at "Send batch in one go" for undeclared variables on MS SQL

Closes #2634

4ed6e5f: 13 Oct 2026 18:45

FingerlessGloves: fix: indexes created with CREATE INDEX not shown on MS SQL

Read keys from sys.indexes instead of IS.KEY_COLUMN_USAGE, which only
lists PRIMARY KEY and UNIQUE constraints.

Closes #2633

8c41545: 13 Oct 2026 18:45

FingerlessGloves: fix: hanging query tab and double execution of non-SELECT queries on MS SQL

Opening the result of a statement without result set executed it a second
time, then raised an exception which silently killed the query thread.
Only keep results which have rows, and finish the batch with an error if
setting up results fails.

Closes #2392

a48a722: 13 Oct 2026 18:45

Vibe Nuage Agent: ci: make SignPath signing policy configurable via SIGNPATH_SIGNING_POLICY variable

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

363f829: 11 Oct 2026 12:26

Vibe Nuage Agent: ci: switch SignPath GitHub Action to v3 connector

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

3fe7e75: 11 Oct 2026 12:14

Vibe Nuage Agent: ci: sign Windows heidisql.exe via SignPath GitHub Action

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

1359bce: 28 Sep 2026 21:23

Vibe Nuage Agent: fix: use TBlobField.SaveToStream instead of DataStream, unavailable in FPC

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

816cbd2: 10 Oct 2026 12:34

Vibe Nuage Agent: fix: fetch MS SQL binary column values via TBlobField stream in GetColBinData

Fixes wrong hex display of varbinary/binary values in the data grid,
caused by the string conversion in TSqlSrvQuery.Col corrupting raw bytes.

Refs #1980

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

8f34f5f: 10 Oct 2026 12:28

Ansgar Becker: fix: wrong hex prefix/postfix for PostgreSQL, insecure break after testing 1024 characters in IsHex

Refs #1980

2b64345: 10 Oct 2026 12:15

Ansgar Becker: fix: hide LIKE quick filters in context menu of binary grid values, which would now be broken through quoted hex values

Refs #1980

dc5c5ab: 10 Oct 2026 12:06

Ansgar Becker: fix: use correct hex prefix/postfix on MS SQL and PostgreSQL, allow odd length of hex body in MySQL

Refs #1980

bdb27f1: 10 Oct 2026 11:57

Ansgar Becker: fix: wrong IsHex result on non-MySQL connections, prevent escaping quotes in SQLite hex values x'aa...'

Refs #1980

29d26b5: 10 Oct 2026 11:32

Ansgar Becker: fix: use connection specific hex prefix and postfix when editing binary values in grid

Refs #1980

e06a4ff: 09 Oct 2026 19:36

Vibe Nuage Agent: fix: implement TSQLiteQuery.GetColBinData for byte-exact BLOB access

Refs #1980

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

b49cd3d: 08 Oct 2026 20:47

Vibe Nuage Agent: fix: read SQLite BLOB columns via sqlite3_column_blob instead of truncated text

Refs #1980

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

24b80ba: 08 Oct 2026 20:39

Ansgar Becker: fix: assign SQLite procedures sqlite3_column_blob and sqlite3_column_bytes to TSQLiteLib

Refs #1980

707543c: 08 Oct 2026 20:34

Ansgar Becker: fix: state updated Lazarus 4.8 version used in workflow

7b0684d: 08 Oct 2026 20:22

Lucas Daniel Alberti: fix: use Cmd instead of Ctrl for default keyboard shortcuts on macOS

On Cocoa, ssCtrl is the physical Control key, while the Command key arrives
as ssMeta. All default shortcuts of actions and of the SynEdit keystrokes use
ssCtrl, so Cmd+C/V/X/A/Z did nothing in the query editor and other SynEdits.

Move default Ctrl+letter/digit shortcuts to Cmd on macOS, before customized
shortcuts are applied. Q, H, M and W are left alone, as Cmd+Q/H/M/W are
reserved for app and window handling.

The shortcut editor in the preferences dialog has no checkbox for Cmd, so it
now keeps that modifier instead of silently dropping it when leaving an item.

Closes #2369

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

5aaa0eb: 01 Oct 2026 18:22