sublime text 本身不支持数据库连接与sql执行,所有插件(如sqltools、dbexplorer、sublimerepl)均依赖外部cli工具或python胶水层,存在配置复杂、密码明文、事务不支持、功能残缺等问题;build system方案最轻量可靠,但仅适用于简单执行场景。

Sublime Text 本身不支持连接数据库或执行 SQL 查询——它没有内置驱动、不管理连接状态、也不处理认证协商。所谓“支持的 SQL 插件”,实际只是帮你调用系统已安装的 mysql、psql、sqlite3 等 CLI 工具,或嵌入终端执行命令。
SQLTools 是目前最主流的选择,但配置失败率高
它提供语法高亮、表结构浏览、结果表格化显示,也支持 MySQL / PostgreSQL / SQLite,但所有功能都依赖外部 CLI 工具和手动 JSON 配置。
- 必须先在终端确认
mysql --version或psql --version有输出,否则插件点“Execute Query”只会报command not found - 连接配置字段名不统一:
mysql类型用database,postgres类型必须用dbname,填错一个就静默失败 - 密码明文写进
SQLTools.sublime-settings,且不加密、无密钥环集成;MySQL 8+ 默认的caching_sha2_password认证方式不兼容,得手动改用户认证插件 - 每次
Ctrl+Enter都是新进程启动,BEGIN; UPDATE; COMMIT;无法跨执行生效,事务上下文完全丢失
Build System 最轻量,适合写完就跑的场景
不用装插件、不依赖 Node.js、不卡在环境链上,直接调用系统 CLI 执行当前 .sql 文件,错误信息实时回显到底部面板,还能点击跳转到出错行。
- 新建 Build System(
Tools → Build System → New Build System…),粘贴类似内容:
{
"cmd": ["mysql", "-h", "127.0.0.1", "-u", "root", "-proot", "mydb", "-e", "source $file"],
"selector": "source.sql",
"working_dir": "$file_path"
}
-
-proot不能有空格,且明文暴露;如需交互输密码,去掉该参数,执行时会提示输入 - Windows 下中文乱码?在
cmd数组开头加"chcp 65001 >nul &&" - SQLite 更简单:
["sqlite3", "app.db", "-init", "$file"],$file必须是完整路径的 SQL 文件
DBExplorer 和 SublimeREPL 属于“看起来能连,实际难维护”类型
DBExplorer 支持侧边栏浏览表结构、双击查数据,但它底层仍调用 mysql 命令,配置项字段和 SQLTools 不一致,报错信息更模糊;SublimeREPL 则需要你写 Python 脚本 + 安装 pymysql,本质是绕过编辑器限制,用 Python 当胶水层。
- DBExplorer 连接保存在独立 JSON 文件里,不是 Sublime 的 settings,升级或重装后容易丢失
- SublimeREPL 启动慢、内存占用高,且 Python 脚本里密码还是明文,和直接用终端没本质区别
- 两者都不支持查询历史、结果导出、执行计划查看等基础 DBA 功能
真正容易被忽略的是:所有这些方案都只解决“怎么把 SQL 发出去”,不解决“怎么管连接”“怎么查慢日志”“怎么导百万行数据”。如果你每天要建索引、看 EXPLAIN、对比 schema 变更,Sublime 再怎么配也只是临时替代——它定位就是编辑器,不是数据库客户端。











