phpMyAdmin 5.2 导出整个数据库需切换至 Custom 模式并手动勾选视图、存储过程等对象,设置 $cfg['ExecTimeLimit'] = 0、禁用压缩、校验字符集与权限,导出后验证 COMMIT; 结尾及建表语句数量。
phpMyAdmin 5.2 里点几下就能导出整个数据库?真能,但“快速”不等于“盲目点执行”——多数失败不是操作错,而是默认设置在大库或旧环境里直接罢工。
导出时空白页/504错误:先查 ExecTimeLimit 和权限
phpmyadmin 是 php 脚本,导出过程受 php 执行时间、内存和 mysql 权限三重限制。看到空白页或 504 gateway timeout,别刷新重试,先做这三件事:
- 登录后执行
SHOW GRANTS FOR CURRENT_USER;,确认结果里含SELECT、LOCK TABLES(导出数据必需),缺FILE权限会报missing privileges for file export - 检查 phpMyAdmin 根目录下的
config.inc.php,确保有$cfg['ExecTimeLimit'] = 0;(设为 0 表示不限时;若没权限改配置,跳过这步,改用命令行) - 数据库 >100MB 就别用 Quick 导出——它默认只导结构,数据全丢;必须切到
Custom模式
导出 SQL 文件乱码或导入报 Unknown collation: 'utf8mb4_0900_ai_ci'
编码不一致是静默杀手。导出文件看着正常,一导入就崩,大概率是字符集或排序规则没对齐。
- 导出前先运行
SHOW CREATE DATABASE `your_db`;,看输出里的DEFAULT CHARACTER SET和COLLATE,比如utf8mb4+utf8mb4_unicode_ci - 导出页顶部显示的「当前连接字符集」必须和上一步一致;如果不符,先手动执行
SET NAMES utf8mb4;再点导出 - 「格式特定选项」里务必勾选
UTF-8 编码(控制 SQL 文件内字符串字面量的编码),同时取消勾选Save as file下方的任何压缩(gzipped/zipped)——压缩会在内存拼完整 SQL,大库极易 OOM
导出内容缺失:视图、存储过程、外键约束全丢了?
默认导出只保表结构+数据,其他对象全被忽略。恢复后功能异常,常因这些逻辑没导出来。
- 在
Custom模式下,滚动到底部「对象」区域,手动勾选Views、Stored procedures、Functions、Events、Triggers - 「格式特定选项」里勾选
Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT statement(否则导入时报Table already exists) - 「数据」区域勾选
Disable foreign key checks(避免导入中途因外键依赖中断) - 把
Maximal length of created query改成50000(默认 5000,大表 INSERT 被切太碎,拖慢导入且易超时)
导出完别急着删库:30 秒验证文件是否截断
phpMyAdmin 导出中断不会报错,只会给你一个残缺的 SQL 文件——你根本不知道最后一张表、最后一个 COMMIT 有没有写进去。
- 用文本编辑器打开导出文件,搜结尾是不是
COMMIT;或UNLOCK TABLES;(InnoDB 表导出应以这两者之一收尾) - 对比原始库表数:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'your_db';,再用grep -c "CREATE TABLE" your_db.sql看文件里建表语句数量是否一致 - 文件大小



















