phpmyadmin不支持直接导出多个数据库到单个sql文件,界面多选无效;唯一可靠方法是使用命令行mysqldump配合--databases参数导出并压缩,如mysqldump -u root -p --databases db1 db2 | gzip > multi_db.sql.gz。

phpMyAdmin 本身不支持直接导出多个数据库到单个文件
这是最常被误解的一点:phpMyAdmin 的「导出」界面默认只允许选中一个数据库(或全部表),Export 操作无法跨库合并为一个 SQL 文件。即使勾选了多个数据库,实际导出时仍会跳转到第一个数据库的导出页,其余被忽略。
真正可行的方式是绕过 Web 界面,用命令行工具 mysqldump 配合 shell 打包 —— 这不是“替代方案”,而是唯一可靠路径。
用 mysqldump 导出多个数据库并合并成一个 SQL 文件
关键在于使用 --databases 参数(注意是复数形式),它会为每个指定数据库自动加上 CREATE DATABASE 和 USE 语句,确保导入时结构完整。
mysqldump -u root -p --databases db1 db2 db3 > multi_db.sql- 如果数据库名含特殊字符或空格,需用反引号包裹:
mysqldump -u root -p --databases \`my-db\` \`prod_v2\` > export.sql - 添加
--single-transaction可避免锁表(仅对 InnoDB 有效) - 加
--routines和--events才能导出存储过程和事件(默认不包含)
导出后立即打包为 .zip 或 .tar.gz(避免手动操作)
单独的 .sql 文件可能很大,且用户常需要压缩后传输。直接在命令行追加打包更可控:
- 生成 SQL 后立刻 zip:
mysqldump -u root -p --databases db1 db2 | gzip > multi_db.sql.gz - 或分步执行(便于调试):
mysqldump -u root -p --databases db1 db2 > dump.sql && tar -czf dump.tar.gz dump.sql && rm dump.sql - 注意:不要用
--all-databases代替--databases,前者会包含mysql、information_schema等系统库,恢复时极可能出错
从 phpMyAdmin 获取导出命令模板(省去记忆参数)
虽然不能直接多库导出,但可以利用它的「显示 MySQL 查询」功能生成参考命令:
- 进入任意一个数据库 → 点击「导出」→ 底部勾选「显示 MySQL 查询」→ 提交
- 页面会显示类似
mysqldump --host=localhost --user=... --databases \`db1\`的完整命令 - 复制该命令,删掉末尾的数据库名,手动补上其他库名即可复用
- 这个技巧特别适合记不清
--skip-triggers或--hex-blob等冷门参数时快速回溯
真正麻烦的不是命令本身,而是误以为 phpMyAdmin 界面能完成这件事 —— 它的 UI 设计把「多选数据库」做成可勾选状态,但底层逻辑根本不处理。动手前先确认你有没有服务器命令行权限,没有的话,得找运维配个临时 mysqldump 访问,而不是在界面上反复尝试。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











