Navicat 不支持直接还原 .psc 文件,因其无内置 .psc 解析能力;该后缀多为误标或自定义,实际需用文本编辑器确认是否纯 SQL 文本——是则重命名为 .sql 即可导入,否则可能为二进制格式而无法处理。
Navicat 不支持直接还原 .psc 文件
根本原因:navicat 本身没有内置对 .psc 格式的解析能力。.psc 是 percona server for mysql(或某些定制版 mysql)用 mysqldump 配合 --set-gtid-purged=off 等参数导出时可能生成的扩展名,但更常见的是用户误标、或第三方工具自定义的后缀——它不是 navicat 认可的备份类型(如 .sql、.psql、.bak)。直接双击或“还原备份”菜单里选 .psc,会提示“不支持的文件格式”或静默失败。
先确认 .psc 实际是不是纯 SQL 文本
别急着装插件或转格式,先用文本编辑器打开看内容。真正有用的判断依据只有两行:
- 开头是否有
CREATE DATABASE、USE `xxx`;或大量INSERT INTO语句 - 有没有二进制乱码(比如开头是
\x00\x00\x00这类)
如果是纯文本且以 SQL 语句为主,那它本质就是个 .sql 文件,只是后缀错了。此时只需重命名为 .sql,Navicat 就能正常导入;如果开头是乱码,大概率是 mysqlpump 或 mydumper 的二进制输出,Navicat 完全无法处理。
Navicat 导入 SQL 文件的实操要点
即使改了后缀,也常因编码或权限问题失败。关键操作如下:
- 右键目标数据库 →
运行 SQL 文件...(不是“还原备份”) - 勾选
字符集:优先选UTF8MB4;若导入后中文变问号,说明原文件是GBK,需手动选对应编码 - 取消勾选
执行每个语句前暂停:否则几千条 INSERT 会卡死在第一个 - 大文件(>50MB)建议拆分:Navicat 对单文件内存占用高,容易无响应;可用
split -l 10000 backup.sql part_(Linux/macOS)或gsplit(Windows)预处理
遇到 ERROR 1231 (42000) 或 GTID 相关报错怎么办
这是 .psc 文件里残留了 GTID 设置(比如含 SET @@GLOBAL.GTID_PURGED),而目标 MySQL 实例没开 GTID,或版本不匹配。Navicat 不会自动跳过这类语句,必须提前清理:
- 用
sed -i '/GTID_PURGED/d' backup.sql(Linux/macOS)删掉所有含 GTID 的行 - Windows 用户可用 VS Code 打开 →
Ctrl+H→ 搜索SET @@GLOBAL.GTID_PURGED→ 全部替换为空 - 如果目标库是 MySQL 5.7+ 且已启用 GTID,但报
GTID_PURGED cannot be changed,说明已有事务记录,此时必须加--skip-extended-insert导出新备份,或清空目标库再导入
真正的难点从来不在点击哪个按钮,而在打开文件第一眼就看出它是文本还是二进制、该删哪行、该换什么编码——这些动作没法被 Navicat 的图形界面封装掉。










