navicat 不支持导入 .psc 文件,因其是 mydumper 生成的并行备份格式,须用 myloader 还原;需确认备份来源、检查权限与连接配置,并通过命令行验证还原结果是否可见。
navicat 导入 .psc 文件提示“不支持的文件格式”或直接无响应
navicat 本身不解析 .psc 文件——它只是 mysql 官方 mysqldump 的图形封装,而 .psc 是 percona server for mysql(或某些定制版)用 mydumper 工具生成的并行备份格式,和 navicat 完全不兼容。
常见错误现象包括:Failed to import file、Unknown file format、点击导入后界面卡住无报错、或日志里出现 unrecognized option '--psc' 类提示(其实是 Navicat 在尝试调用 mysqldump 时误读了扩展名)。
- 别在 Navicat 里双击
.psc文件,也别选“从 SQL 文件恢复”——这条路根本走不通 -
.psc不是压缩包,不能用解压软件打开;它内部是多个分片的.sql+.metadata,需用配套工具还原 - 确认备份来源:如果是 Percona XtraBackup 或 mydumper 生成的,必须回归对应生态,不能混用工具链
用 myloader 还原 .psc 备份的最小可行步骤
myloader 是 mydumper 的配套恢复工具,专为处理 .psc 目录结构设计。它不依赖 Navicat,直接连接 MySQL 实例写入数据,速度也比单线程 mysql 命令快得多。
使用前确保:myloader 已安装(Linux/macOS 用包管理器,Windows 需下载 Percona Toolkit),目标 MySQL 实例已启动且账号有 CREATE/INSERT/DROP 权限。
- 解压(如果
.psc实际是 tar.gz 包):tar -xzf backup.psc.tar.gz -C /path/to/restore/—— 还原目录下应含metadata、schema_create.sql、若干*.sql分片 - 执行还原:
myloader -h localhost -u root -p 'pass' -t 4 -d /path/to/restore/ --overwrite-tables -
-t 4表示开 4 线程,可根据 CPU 核心数调整;--overwrite-tables强制清空同名表再导入,避免主键冲突 - 若提示
Access denied for user,检查 MySQL 是否启用skip-grant-tables或账号密码是否含特殊字符(建议用配置文件--defaults-file避免 shell 解析问题)
还原失败时怎么看 myloader 日志里的关键线索
myloader 默认只输出简略进度,出错时真正有用的错误藏在 stderr 或加 -v 3 启用详细日志。不要只盯着“ERROR”字眼,重点看三类信息:
- 连接阶段报错如
Can't connect to MySQL server on 'localhost'→ 检查-h地址、端口(默认 3306)、防火墙、MySQL 是否监听127.0.0.1而非localhost(后者可能走 socket) - 权限报错如
ERROR 1142 (42000) at line 1: CREATE command denied→ 登录用户缺少CREATE ROUTINE、EVENT或TRIGGER权限,补全:GRANT ALL ON *.* TO 'user'@'%'; FLUSH PRIVILEGES; - SQL 执行报错如
ERROR 1062 (23000) at line 123: Duplicate entry 'xxx' for key 'PRIMARY'→ 表已存在且含数据,必须加--overwrite-tables或先手动DROP DATABASE - 若日志停在某张表不动,大概率是该表结构与备份时不符(比如字段类型变更、索引被删),此时可临时跳过:
--exclude-tables-list="db1.table_a,db2.table_b"
Navicat 里看不到还原结果?检查 myloader 的目标库和 Navicat 连接配置是否一致
这是最隐蔽也最常被忽略的一环:myloader 默认还原到备份中记录的库名(见 metadata 文件),但 Navicat 可能连的是另一个实例、端口、甚至 Docker 容器内的 MySQL,导致“明明还原成功了,Navicat 刷新列表却空空如也”。
- 运行
myloader --help查看是否用了-B指定库名;没指定就按metadata里写的来,可用grep "Created" metadata确认 - Navicat 连接设置里检查:
Host是127.0.0.1还是localhost(macOS/Linux 下行为不同)、Port是否为 3306(Docker 映射常用 3307)、Database字段是否为空(为空才显示全部库) - 在 MySQL 命令行执行
SHOW DATABASES;和USE your_db; SHOW TABLES;,结果和 Navicat 不一致?那问题一定出在 Navicat 连接的目标上,不是还原失败
还原逻辑和可视化工具是两层事——myloader 干的是数据落地,Navicat 只是读取展示。中间任何一环配错,都会让你以为“又失败了”。










