sublime text 本身不能运行 sql 查询语句,必须调用系统已安装的 mysql、psql 或 sqlite3 等 cli 工具;ctrl+b 报 command not found 的根本原因是 gui 启动时未继承终端 path,需在 build system 中写绝对路径或正确配置环境变量。

Sublime Text 本身不能运行 SQL 查询语句,所谓“直接运行”全是靠调用系统里已安装的 mysql、psql 或 sqlite3 这类 CLI 工具实现的——编辑器只负责传文件、捕获输出,真干活的是你本地装的那个命令行客户端。
为什么 Ctrl+B 执行 SQL 总是报 command not found
根本原因不是 Sublime 配置错了,而是它压根没找到你要用的数据库客户端命令。Build System 的 "cmd" 数组第一项必须是能被 shell 直接执行的路径,比如 mysql 或 /usr/bin/psql,而 Sublime GUI 启动时往往不继承终端的 $PATH。
- macOS 用户常见情况:终端里
psql --version能跑,但 Sublime 里 build 就报错 → 检查是否用 Homebrew 安装在/opt/homebrew/bin/psql,得在 Build System 里写绝对路径 - Windows 用户注意:
mysql默认不进 PATH,MySQL Installer 很可能没勾选 “Add MySQL to PATH”,要手动把C:Program FilesMySQLMySQL Server 8.0in加进去 - Linux 下如果用 snap 安装的 MySQL,
mysql命令可能被沙盒隔离,build 时不可见,建议改用 apt 安装的版本
Build System 中怎么安全传密码和处理中文
硬编码密码在 .sublime-build 文件里既不安全也不健壮;而 Windows 下 SQL 文件含中文,source $file 极易乱码,这两点必须分开处理。
- 密码不要写在
"cmd"里,比如-proot是明文且空格敏感 → 改用--defaults-file指向一个权限为600的配置文件,内容如:[client] user=root password=your_pass
- Windows 下中文乱码:在
"cmd"最前面加"chcp 65001 >nul &&"(UTF-8),再跟原命令,例如:["chcp", "65001", ">", "nul", "&&", "mysql", "-u", "root", "--defaults-file=C:\my.cnf", "testdb", "-e", "source $file"] - Linux/macOS 不用切编码,但要注意
mysql默认字符集可能是 latin1,可在连接参数里加--default-character-set=utf8mb4
执行多条语句时为什么只跑第一句
mysql -e "SELECT 1; SELECT 2;" 这种写法在 CLI 里能跑,但在 Build System 里用 -e + source $file 组合时,source 是 mysql 客户端命令,不是 SQL 语句,不能嵌套在 -e 里执行——结果就是只执行了第一条,后续全被忽略。
- 正确做法是去掉
-e,直接让 mysql 读文件:["mysql", "-u", "root", "--defaults-file=/path/to/my.cnf", "mydb", ",但注意 Sublime 的 build 不支持 shell 重定向符号 <code>,得包一层 <code>sh -c或cmd /c - 更稳的方案:用
mysql -u ... mydb 写成 shell 命令,<code>"cmd"改为["sh", "-c", "mysql -u root --defaults-file=/path/to/my.cnf mydb - SQLite 更简单:
["sqlite3", "app.db", ".read", "$file"],前提是$file里每条语句结尾有分号,且不含 SQLite 特有命令(如.tables)
SQLTools 插件连上了却执行不了语句
SQLTools 显示 “Connected” 但按 ctrl+shift+e 没反应或报 “Driver not found”,大概率不是网络或权限问题,而是驱动没装对、路径没配准、或 CLI 工具版本不兼容。
- 必须单独安装对应驱动:用 MySQL 就搜
SQLTools MySQL Driver,不是只装SQLTools核心就行;PostgreSQL 同理,漏掉SQLTools PostgreSQL Driver就会卡住 - 插件 settings 里
"executablePath"必须填绝对路径,比如/opt/homebrew/bin/mysql,不能只写mysql;Windows 下路径里的反斜杠要双写或用正斜杠 - MySQL 8.0+ 默认用
caching_sha2_password认证插件,SQLTools 的旧版驱动不支持 → 创建用户时显式指定:CREATE USER 'dev'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass';
最常被忽略的一点:Build System 的 "selector": "source.sql" 必须匹配当前文件语法高亮模式。如果右下角显示的是 “Plain Text” 而不是 “SQL”,ctrl+b 就不会触发该构建系统——点击右下角手动切到 SQL,或者保存为 .sql 后缀再试。











