Sublime Text 需通过 SQLTools 插件调用系统 psql 才能连接 PostgreSQL;必须先安装 psql 客户端并确保其在 PATH 中,再配置 SQLTools 的 PostgreSQL 连接参数,且 driver 值必须为 "postgres"。

Sublime Text 本身不能直接连接 PostgreSQL,必须靠插件 + 外部命令行工具协同工作。核心路径是:装好 psql → 安装 SQLTools → 配置连接参数 → 才能右键执行 SQL。
确保 psql 命令可用且在 PATH 中
SQLTools 不自带数据库客户端,它只是调用系统已安装的 psql。如果终端里运行 psql -V 报 command not found,后续所有配置都无效。
- Ubuntu/Debian:运行
sudo apt install postgresql-client(不是postgresql全量包,只需客户端) - macOS:用 Homebrew 安装更稳妥:
brew install libpq,然后确认psql在$PATH—— 运行which psql应输出类似/opt/homebrew/bin/psql - Windows:安装 PostgreSQL 时勾选 “Command Line Tools”,或单独下载 EnterpriseDB 提供的
pgAdmin附带的psql.exe,再把其所在目录加进系统环境变量 - 验证方式:新开终端,执行
psql --version和psql -h localhost -U postgres -d postgres -c "SELECT version();",能返回版本和 PostgreSQL 版本字符串才算就绪
安装 SQLTools 并启用 PostgreSQL 支持
别装 SublimeSQL 或其他轻量高亮插件——它们不支持真实连接执行。唯一推荐的是 SQLTools,但它的 PostgreSQL 支持默认关闭,需手动开启。
- 按
Ctrl+Shift+P(Linux/Windows)打开命令面板,输入Package Control: Install Package回车,搜索并安装SQLTools - 安装完成后,再次调出命令面板,输入
SQLTools: Settings,打开用户配置文件(SQLTools.sublime-settings) - 找到
"connections"字段,在里面添加一个 PostgreSQL 类型连接,例如:
{
"connections": {
"my_pg_local": {
"driver": "postgres",
"host": "localhost",
"port": 5432,
"database": "postgres",
"user": "postgres",
"password": "your_password_here"
}
}
}
注意:"driver": "postgres" 是硬编码值,写成 postgresql 或 pg 都会失败;密码明文存储有风险,生产环境建议用 .pgpass 文件配合 password 留空
执行 SQL 时常见失败原因
右键 → SQLTools: Execute Query 却没反应、报错或卡住,大概率是以下某个环节断了:
-
psql调用失败:检查 Sublime 控制台(Ctrl+`)是否打印类似psql: command not found或connection refused—— 前者说明 PATH 未生效,后者说明 PostgreSQL 服务没起来或端口被占 - 连接参数错位:PostgreSQL 默认端口是
5432,但很多人改过;database字段填的是库名,不是集群名;user必须是已有角色,不能是任意字符串 - 权限不足:
postgres用户默认只允许本地peer或md5认证。若你改过pg_hba.conf,确保对应 host/type/database/user 的行是md5或trust,否则psql会静默退出 - SQL 文件编码问题:如果 .sql 文件是 GBK 编码,而
psql默认按 UTF-8 解析,可能报语法错误。建议统一用 UTF-8 保存 SQL 文件
subl 命令不可用会影响 SQLTools 启动吗?
不影响。SQLTools 调用的是 psql,不是 subl。但如果你习惯用终端开 Sublime 写 SQL,subl 命令失效会导致无法快速打开文件,间接拖慢流程。
- Ubuntu 安装后
subl报command not found:检查是否漏了软链接步骤 —— 运行sudo ln -s /opt/sublime_text/sublime_text /usr/bin/subl - Mac 上用
subl报错Failed to load plugin:通常是插件初始化顺序问题,重启 Sublime 或重装SQLTools即可,不影响psql调用 - 真正关键的是
psql是否能被 Sublime 的子进程环境识别到 —— 它不继承你的 shell profile,所以通过~/.zshrc设置的 PATH 可能不生效。稳妥做法是把psql绝对路径写死在SQLTools配置里,用"binary": "/usr/bin/psql"字段指定
PostgreSQL 连接配置最易忽略的点不是密码或端口,而是认证方式和 psql 的环境隔离 —— Sublime 的子进程看不到你 shell 里的 PATH 或 .pgpass,所有依赖必须显式声明或全局可用。


















