Sublime Text 本身不能运行 SQL,它只是文本编辑器,无内置数据库驱动或执行引擎;所谓“运行”实为调用本地 mysql/psql/sqlite3 等 CLI 工具执行并返回结果,依赖 PATH 可访问、插件(如 SQLTools)正确配置及客户端就绪。

Sublime Text 本身不能运行 SQL,别被“插件能连数据库”的说法误导
它只是个文本编辑器,没有内置驱动、连接池或执行引擎。所谓“运行 SQL”,本质是把 SQL 文本发给系统里已安装的 mysql、psql 或 sqlite3 这类 CLI 工具,再把输出结果拿回来显示。如果你本地没装对应客户端,或者 PATH 里找不到,任何插件都起不来。
SQLTools 插件配置的关键三步:Node.js + CLI 路径 + 连接参数
这是目前唯一持续维护、支持 MySQL/PostgreSQL/SQLite 的插件,但它不是“开箱即用”:
- 必须提前装好 Node.js(v16+),SQLTools 后端靠它跑
- 在插件设置里填对
executablePath:比如 PostgreSQL 要指向psql实际位置(macOS 可能是/usr/local/bin/psql,Windows 常见是C:Program FilesPostgreSQL inpsql.exe) - 连接配置写在
connections.json里,密码不建议明文写,可用环境变量如${env:PGPASSWORD} - 注意:SQLTools 不支持事务延续——每条
SELECT或INSERT都是独立进程启动,BEGIN后跟COMMIT在不同命令间无效
更轻量但更可控的方式:自定义 Build System 调用 mysql/psql
适合只查一两个库、不想折腾 Node 环境的人。直接在 Sublime 里建一个构建系统(Tools → Build System → New Build System):
{
"cmd": ["mysql", "-h", "localhost", "-u", "root", "-p", "mydb", "-e", "source $file"],
"selector": "source.sql",
"shell": true,
"working_dir": "$file_path"
}
要点:
-
$file是当前 SQL 文件路径,source $file让 mysql 执行整个脚本 - 密码不能直接写进
-p后面(会暴露),应删掉-p,运行时弹窗输;或改用--defaults-file指向含凭据的配置文件 - Windows 用户注意路径分隔符和可执行文件后缀:
mysql.exe,且需确保该路径在系统PATH中,否则得写绝对路径如"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" - 错误信息默认不显示在 Sublime 输出面板,加
"variants": [{"name": "Run with stderr", "cmd": [...], "quiet": false}]可强制捕获
为什么你点了 Ctrl+B 却没反应?常见卡点就这几个
不是插件坏了,大概率是底层链路断了:
-
mysql或psql命令在终端能运行,但在 Sublime 里报"command not found"→ Sublime 启动时没继承 shell 的PATH,macOS/Linux 需改用 ShellScript 启动,Windows 可以在构建系统里硬编码绝对路径 - SQLTools 显示 “Connection failed” 但参数没错 → 检查目标数据库是否监听
localhost(PostgreSQL 默认只监听127.0.0.1,pg_hba.conf里没放开local或host条目) - 执行后输出乱码或截断 → CLI 工具默认输出宽度受限,可在构建系统中加
--batch --column-names --table(mysql)或--tuples-only --no-align(psql)控制格式 - 中文字段名或注释显示为
???→ CLI 工具字符集没对齐,mysql 加--default-character-set=utf8mb4,psql 加export PGCLIENTENCODING=utf8到环境变量
真正复杂的查询、带变量的脚本、需要回滚的事务,别硬扛在 Sublime 里做。它只适合写、看、小批量验证——把活交给 mysql 终端、psql 或 DBeaver 更稳。

















