sqltools连不上数据库主因是cli工具路径未正确配置:sublime的gui环境变量与终端不一致,需手动设置executablepath为mysql/psql/sqlite3的绝对路径,并确保方言绑定准确、sqlparse已安装。

SQLTools 连不上数据库,先查 executablePath 和 PATH
连不上不是插件问题,八成是 mysql、psql 或 sqlite3 命令在 Sublime 里根本找不到。终端能跑不代表 Sublime 能调用——GUI 应用启动时继承的环境变量常和 shell 不一致。
- macOS M1/M2 用户:检查
psql --version在终端(zsh)里有输出,但 Sublime 报command not found→ 改用绝对路径,比如"executablePath": "/opt/homebrew/bin/psql" - Windows 用户:MySQL 安装后
mysql --version报错 → 把C:\Program Files\MySQL\MySQL Server 8.0\bin加进系统环境变量 PATH,重启 Sublime - Linux / macOS:运行
which sqlite3,把结果填进 SQLTools 设置里的executablePath字段;别留空,空值会 fallback 到 PATH,但不可靠
SQL 文件打开不高亮、补全失效,手动绑定方言最稳
Sublime 默认识别 .sql 后缀,但 PostgreSQL 的 $$ 块、Snowflake 的 QUALIFY、HiveQL 的 LATERAL VIEW 都会乱着色——这不是 bug,是语法包没对上。
- 右下角点击当前语法名(如 “SQL”),选对应方言:
PostgreSQL、MySQL、PL/SQL—— 这直接影响括号匹配、关键字着色和注释行为 - 写 HiveQL 或 Spark SQL?得手动加语法包:
Hive.sublime-syntax放到Packages/User/目录,再通过View → Syntax → Open all with current extension as…绑定.sql - 别用 “SQL (Improved)” 这类非官方包:更新停滞,遇到
INSERT ON CONFLICT就直接高亮断掉
格式化 SQL 总是换行错乱,优先用 SQLBeautifier + sqlparse
SQLBeautifier 是目前最稳的本地格式化方案,不依赖网络、不传敏感语句、支持 CTE 和窗口函数;而 SQLFormat 插件默认用在线服务,规则不可控,且 WHERE 子句常被压成一行。
- 安装后进用户设置,加这三行:
"indent_width": 2,<br>"uppercase_keywords": true,<br>"use_sqlparse": true
- 必须手动
pip install sqlparse,否则插件走降级逻辑,格式效果差很多 - 快捷键别用默认的
Ctrl+Shift+P → SQL: Beautify,绑定到Ctrl+Alt+F更顺手(Preferences → Key Bindings)
执行 SELECT 没结果、INSERT 却说成功,检查选中范围和语句结构
SQLTools 执行的是光标所在“语句块”,不是整个文件,也不是随便选中的一段文本——它会尝试解析语法边界,失败就只执行第一句或静默跳过。
- 执行前务必选中完整语句:从
SELECT到分号(;),中间不能有空行或注释打断 - 多条语句想一起跑?Build System 更可靠:
{"cmd": ["sqlite3", "$file", ".read", "$file"]}这种写法才能确保全文件执行 - 结果面板列宽截断、长字段看不见?这不是插件限制,是纯文本渲染特性;调试阶段建议先在终端验证:
echo "SELECT * FROM users LIMIT 1;" | mysql -u root -p mydb
实际配通的关键不在插件数量,而在 CLI 工具是否真能被 Sublime 看见、方言是否和代码一致、格式化是否走本地 sqlparse——这三个点卡住,其他都是表象。











