notepad++ 本身不能连接 mysql,所谓“运行 sql”全是靠调用外部命令行工具(比如 mysql)实现的;需通过 nppexec 插件配置 cd $(current_directory) 和 mysql -h localhost -u root -p...

Notepad++ 本身不能连接 MySQL,所谓“运行 SQL”全是靠调用外部命令行工具(比如 mysql)实现的;没装客户端、没配好路径、没处理编码,就点执行,90%会卡在报错上。
怎么让 Notepad++ 调用 mysql 命令?
核心是 NppExec 插件 + 系统 PATH 中可用的 mysql。不是“装个插件就自动连上”,而是把 Notepad++ 当成一个带按钮的文本界面,背后甩锅给 cmd 或 PowerShell。
- 确认
mysql可执行:打开 CMD,输mysql --version,有输出才继续 - 安装 NppExec:Plugins → Plugins Admin → 搜索 NppExec → Install
- 配置执行命令(F6 打开 NppExec 控制台):
cd $(CURRENT_DIRECTORY) mysql -h localhost -u root -pmysecret -D testdb 注意:<code> 是重定向符号,不是全角字符;<code>$(FULL_CURRENT_PATH)</code> 会自动展开为当前文件绝对路径</code>
- 保存为脚本(比如叫
Run MySQL),勾选Place to the Macros submenu,之后就能从菜单一键触发
mysql 连接失败常见报错和对应解法
不是 Notepad++ 的问题,而是底层命令行环境没准备好。看到这些错误别急着换工具,先查路径和权限。
-
'mysql' is not recognized as an internal or external command:系统找不到mysql,检查是否把 MySQL bin 目录(如C:\Program Files\MySQL\MySQL Server 8.0\bin)加进了 Windows 的 PATH 环境变量 -
Access denied for user 'root'@'localhost':密码错、用户不存在、或 MySQL 8.0 默认用了caching_sha2_password认证——旧版客户端不认,得改用户认证方式:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpass'; -
Can't connect to MySQL server on 'localhost':MySQL 服务根本没启动,Win+R 输services.msc,找mysql80(或你起的服务名),右键启动
SQL 文件里中文注释乱码、执行出错怎么办?
Notepad++ 默认用 ANSI 编码读写,而 MySQL 客户端默认按 UTF-8 解释输入流。两边对不上,中文字段名、注释、INSERT 值全崩。
- 必须把文件编码设为
UTF-8 (without BOM):菜单栏 编码 → UTF-8 (无 BOM),然后重新加载文件(不会丢内容) - 如果 SQL 里有
CREATE TABLE ... COMMENT='中文'这类语句,还要确保数据库、表、列都用了utf8mb4字符集,否则即使文件编码对了,建表也会失败 - 命令行中加
--default-character-set=utf8mb4更保险:mysql --default-character-set=utf8mb4 -h localhost -u root -p -D testdb
真正容易被忽略的,是 SQL 文件末尾有没有分号、是否含多条语句、以及 mysql 默认不支持 DELIMITER ——如果你的脚本里有存储过程或函数定义,直接执行会报语法错。这种时候,得用 source 或拆成单条语句再喂给 mysql,而不是指望 Notepad++ 自动识别上下文。











