sublime text 无法直接连接数据库,需通过sqltools等插件调用本地cli工具(如psql、mysql)执行查询;所有连接参数需手动配置,且依赖系统path中可调用对应命令行客户端。

Sublime Text 本身不支持直接连接或操作 SQL 数据库——它不是数据库客户端,也没有内置的连接管理功能。所谓“配置 SQL 数据库连接”,实际是通过第三方插件(如 SQLTools)提供语法高亮、查询发送、结果查看等辅助能力,但**所有执行仍依赖外部 CLI 工具(如 mysql、psql、sqlite3)或远程服务(如 PostgreSQL 的 pgcli)**。
SQLTools 插件根本不能“连数据库”,它只是个查询转发器
SQLTools 不包含驱动、不内置连接池、也不处理认证协商。它的作用很明确:把你在 Sublime 里写的 SQL 发给已安装的命令行客户端(比如你本地装好的 psql),再把 stdout/stderr 拿回来显示在面板里。
- 必须提前在系统 PATH 中能调用到对应 CLI 工具(运行
which psql或where mysql要有输出) - 连接参数(host/port/database/user/password)全靠你在 Sublime 的
SQLTools.sublime-settings里手动填,且不同数据库类型字段名不一致(例如 MySQL 用database,PostgreSQL 用dbname) - 密码明文写在配置文件里,无加密、无密钥环集成,生产环境慎用
- 不支持连接复用或事务上下文保持——每次
ctrl+enter都是新进程启动,BEGIN; ... COMMIT;无法跨执行生效
安装 SQLTools 的真实步骤(别被 Package Control 假象骗了)
Package Control 装的只是插件前端,后续必须手动补全 CLI 依赖和配置,否则点“Execute Query”只会报 command not found 或空面板。
- 先确认 CLI 工具已安装并可全局调用:
psql --version、mysql --version、sqlite3 --version - 用 Package Control 安装
SQLTools后,按ctrl+shift+p→ 输入SQLTools: Setup Connection,它会生成一个 JSON 配置模板 - 打开
Preferences → Package Settings → SQLTools → Settings,把生成的连接块粘贴进"connections"数组,注意:- MySQL 连接必须含
"mysql"类型字段和"database"键 - PostgreSQL 必须用
"postgres"类型和"dbname"键 - SQLite 只需
"sqlite"类型 +"database"指向绝对路径(如/Users/me/app.db)
- MySQL 连接必须含
- 保存后重启 Sublime,右键选中 SQL 文本 →
SQLTools: Execute Query才可能出结果
为什么你执行总失败?几个高频卡点
错误信息常被忽略,但每条都指向具体缺失环节:
-
Command "psql" not found→ 系统 PATH 没包含 PostgreSQL bin 目录(macOS 可能装在/usr/local/pgsql/bin,需加进 shell profile) -
connection to server at "localhost" (127.0.0.1), port 5432 failed→ PostgreSQL 服务根本没运行,brew services start postgresql或sudo systemctl start postgresql - 结果面板空白或只显示“Query executed” → 查询没带分号(
SELECT * FROM users不行,必须SELECT * FROM users;),SQLTools 依赖分号切分语句 - 中文乱码或报
invalid byte sequence→ CLI 工具 locale 和数据库 encoding 不一致,临时解决:在连接配置里加"env": {"PGCLIENTENCODING": "UTF8"}(PostgreSQL)
真正麻烦的从来不是插件安装,而是 CLI 工具链的版本对齐、环境变量可见性、以及权限模型(比如 macOS 上 Homebrew 安装的 mysql 默认不监听 TCP,只能 socket 连)。这些细节不调通,插件图标再漂亮也发不出一条查询。











