日常用 HeidiSQL 管理 MySQL、MariaDB 或 PostgreSQL 的开发者,大概都遇到过这些场景:建用户时认证插件选错了导致登录失败;SQL Server 连接断开后查询直接报错只能手动重连;导出数据时列太多只能先删列再导出。12.18 版本一次性把这几个痛点都修了,还顺带堵了一个 CVE 漏洞。
用户管理器支持认证插件选择
MySQL 8.0+ 默认认证插件从 mysql_native_password 换成了 caching_sha2_password,MariaDB 也有自己的 password_reauth 等插件。之前在 HeidiSQL 的用户管理器里创建或编辑用户时,没法直接指定插件,要么靠 SQL 手写,要么接受默认值——结果就是客户端连不上,排查半天才发现插件不匹配。
12.18 在用户管理器界面新增了认证插件下拉选择,同时修复了一个关联 bug:某些插件(比如 mysql_native_password)没有固定密码长度要求,旧版本会错误地传入一个"无效密码长度",导致创建用户失败或密码存储异常。
实际操作中,如果你在 MySQL 8.0 上给旧客户端建用户,现在可以直接在用户管理器里把插件切换回 mysql_native_password,不用再手写 ALTER USER:
-- 以前只能这样补救
ALTER USER 'app_user'@'10.0.%' IDENTIFIED WITH mysql_native_password BY 'S3cureP@ss!';
FLUSH PRIVILEGES;
-- 现在在 HeidiSQL 用户管理器里直接选插件和填密码即可,等效于上面的语句
建议:新建用户时先确认客户端驱动支持的认证方式,再选对应插件,避免"用户建好了但连不上"的尴尬循环。
SQL Server 断连自动重连
连 SQL Server 的开发者对这个问题应该很熟悉:连接空闲一段时间后被服务端断开,再执行查询直接抛连接错误,只能关闭窗口重新连接,之前的查询上下文全丢了。
12.18 的修复逻辑是:在执行查询前检测连接状态,如果已断开则自动重建连接再继续执行。对使用者来说,体验就是"查询偶尔慢一下但能跑出来",而不是"查询报错、手动重连、重新写查询"。
如果你想在 SQL Server 端配合调整断连阈值,可以修改以下配置:
-- 查看当前远程查询超时(默认 600 秒)
EXEC sp_configure 'remote query timeout';
-- 调整为更长值,减少空闲断连频率(单位:秒)
EXEC sp_configure 'remote query timeout', 1800;
RECONFIGURE;
不过核心改善还是在客户端侧,HeidiSQL 的自动重连让你不用再盯着连接状态焦虑。
网格导出:只导出选中列
导出查询结果到 CSV 或 SQL 脚本时,经常遇到列太多的问题——80 列的表只需要导其中 5 列,以前要么先写 SELECT col1, col2... 限定列,要么导出后再删多余列。12.18 加了一个网格导出选项:仅导出当前在网格中选中的列。
操作方式:在查询结果网格里按住 Ctrl 点击列头选中需要的列,然后右键 → 导出网格数据,勾选"仅导出选中列"。这比改查询语句更直观,尤其适合临时排查场景。
配合一个实用的小技巧——快速选中多列后导出:
-- 先查出全表(或大范围数据)
SELECT * FROM order_log WHERE created_at > '2025-01-01';
-- 在 HeidiSQL 结果网格中 Ctrl+点击选中 order_id、status、amount 三列
-- 右键 → Export grid data → 勾选 "Only selected columns" → 导出为 CSV
-- 等效于手动写:
SELECT order_id, status, amount FROM order_log WHERE created_at > '2025-01-01';
对于需要反复导出固定列组合的场景,还是建议写成明确的 SELECT 语句保存为 snippet,网格选中导出更适合一次性临时需求。
CVE-2025-70873 与 SQLite 升级
这个版本修复了 CVE-2025-70873,具体细节官方暂未完全公开,但修复动作很明确:将内置 SQLite 库升级到 v3.53.1。HeidiSQL 内部用 SQLite 存储连接配置、查询历史等本地数据,漏洞大概率涉及本地数据解析路径。升级 SQLite 库是标准且有效的修复方式。
如果你关心本地配置文件的安全状态,可以检查 HeidiSQL 的配置存储路径:
# HeidiSQL 默认配置文件位置(Windows)
dir "%APPDATA%\HeidiSQL\settings.txt"
# 查看文件修改时间,确认是否在升级后重新生成
dir "%APPDATA%\HeidiSQL\settings.txt" | findstr "settings.txt"
升级到 12.18 后,本地配置文件的读写底层已经使用修复后的 SQLite,无需额外操作。
升级建议与注意事项
- 优先升级:CVE 修复 + SQL Server 自动重连这两个改进对日常使用影响最大,建议尽快更新。
- MySQL 8.0 用户重点关注认证插件功能:如果你管理多个 MySQL 8.0 实例且需要兼容旧驱动,用户管理器的插件选择能省不少排错时间。
- 导出功能属于体验优化:不涉及安全或稳定性,按自己需求决定是否为此升级。
- 升级方式:HeidiSQL 官网下载最新安装包覆盖安装,或在已有版本中通过菜单检查更新。配置和连接历史会自动保留。
HeidiSQL 12.18 不是一个大版本重构,但每个改动都踩在实际痛点上——认证插件选择消除了用户创建时的隐性坑,自动重连减少了 SQL Server 用户的重复操作,选中列导出让临时数据提取更顺手。对于把 HeidiSQL 当日常工具的开发者来说,这些小改进累积起来就是工作流的实质性提速。