phpMyAdmin导出JSON需切换至“自定义”模式并在格式下拉框底部选择,旧版本需升级至4.7+;字段名保持小写蛇形,中文可能被转义,大数据量易超时,建议分页导出或改用命令行。
导出按钮里没有 JSON 选项,怎么办
phpmyadmin 默认导出格式不包含 json,这是最常被卡住的第一步。不是功能缺失,而是它把 json 导出藏在了「自定义」导出流程里,且仅在「结构和数据」或「仅数据」模式下才可用。
- 必须先选中要导出的表(单表或多个表),不能在数据库概览页直接点「导出」
- 点击「导出」后,切换到「自定义」选项卡,别停留在「快速」模式
- 在「格式」下拉框中滚动到底部,找到并选择
JSON—— 它通常排在CSV、XML后面,容易被忽略 - 如果下拉里压根没
JSON,说明你用的是较老版本(如 4.6 或更早),需升级到 phpMyAdmin 4.7+(官方从 4.7.0 起正式支持 JSON 导出)
导出的 JSON 字段名全是小写,但后端接口要驼峰命名
phpMyAdmin 导出的 JSON 直接映射数据库字段名,不会做任何命名转换。如果你的 MySQL 字段是 user_name、created_at,导出结果就是原样键名,而现代 API 普遍期望 userName、createdAt。
- 不要指望 phpMyAdmin 内置选项能改字段名;它不提供字段别名或重命名导出功能
- 临时方案:导出后用脚本批量处理,比如用 Python 的
json.load()+snake_to_camel函数重写键名 - 长期建议:把字段映射逻辑写进后端接口层(如 Laravel 的
toArray()或 Spring Boot 的@JsonAlias),而不是依赖导出文件格式 - 注意:如果导出时勾选了
Export table names as titles,JSON 会多一层包装,变成{"users": [...]},这反而增加前端解析成本,一般应取消勾选
大数据量导出时报错 Maximum execution time of 300 seconds exceeded
JSON 导出比 SQL 或 CSV 更耗内存和 CPU,尤其当字段含长文本、JSON 类型列或上万行数据时,phpMyAdmin 容易超时或内存溢出。
- 优先尝试「分页导出」:在 SQL 标签页手动执行
SELECT * FROM `table` LIMIT 0, 5000,再对结果集导出,避免全表扫描 - 禁用「显示索引」和「显示评论」等附加信息(导出页底部选项),它们会让 JSON 体积膨胀 2–3 倍
- 如果服务器可控制,临时调高 PHP 配置:修改
max_execution_time和memory_limit,但别设成-1,防止挂起整个服务 - 真正的大表(>10 万行)别硬扛 phpMyAdmin —— 改用命令行:
mysqldump --tab=/tmp --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\n' db_name table_name,再用工具转 JSON
导出的 JSON 里中文变乱码或出现 \uXXXX
这不是编码问题,而是 phpMyAdmin 对 UTF-8 字符的默认 JSON 编码行为:它调用 PHP 的 json_encode() 且未传 JSON_UNESCAPED_UNICODE 标志,导致中文被转义。
- 检查导出页面底部的「格式特定选项」区域,勾选
Export data in hexadecimal format是错的,那个是给二进制字段用的;真正相关的是Escape backslashes and NUL bytes—— 保持不勾选即可减少干扰 - 根本解法:升级 phpMyAdmin 到 5.2.0+,该版本已默认启用无转义 Unicode 输出
- 若无法升级,导出后用
echo $json | python3 -c "import sys, json; print(json.dumps(json.load(sys.stdin), ensure_ascii=False))"修复一次 - 注意:如果数据库连接字符集不是
utf8mb4,即使导出设置正确,原始数据本身可能已损坏,先确认SHOW VARIABLES LIKE 'character_set%'和建表语句中的CHARSET=utf8mb4
导出 JSON 看似一键操作,实际每一步都卡在版本、配置、数据形态的交叉限制里。最容易被忽略的是:它根本不适合当 API 数据源来用 —— 临时调试可以,上线前务必走真实接口验证,否则字段类型、空值处理、时间格式这些细节,导出文件永远骗不了人。
立即学习“PHP免费学习笔记(深入)”;



















