phpMyAdmin 导出文件名不支持自动加日期,需手动输入或改用 mysqldump 命令行配合 date 命令实现自动化;修改配置或源码无效且易出错。
phpMyAdmin 导出文件名不支持自动加日期,得靠浏览器手动改
phpmyadmin 本身没有内置选项让导出的 .sql 文件名自动包含当前日期(比如 mydb_20240520.sql)。它的导出界面只提供固定命名逻辑:数据库名_表名.sql 或你手动输入的名称,date()、strftime() 这类函数在导出表单里完全不生效。
导出时手动填带日期的文件名最可靠
虽然不能全自动,但浏览器导出弹窗出现前,你有几秒时间干预——关键就在导出前的「文件名」输入框:
- 点击导出 → 选择「自定义」→ 拉到最下方找到
文件名模板输入框(注意不是「保存为文件」复选框下面那个) - 直接输入类似
myapp_prod_20240520.sql这样的名字(日期手打或用系统日历辅助) - 如果常用,可以提前把带日期的模板存成浏览器书签,比如:
https://your-pma.example.com/export.php?db=myapp&table=&export_type=database&asfile=1&filename_template=myapp_%Y%m%d.sql——但注意:phpMyAdmin 不解析%Y%m%d,这只会原样导出为字面名,没用
真要自动化?绕开 phpMyAdmin,用 mysqldump + shell 脚本
如果你每天都要导出且必须带日期,硬刚 phpMyAdmin 界面是死路。正确做法是跳过它,用命令行:
mysqldump -u root -p myapp > myapp_$(date +%Y%m%d_%H%M).sql
这样生成的文件就是 myapp_20240520_1423.sql。配合 cron 定时任务,还能每天凌晨自动备份。注意:mysqldump 需服务器 SSH 权限,且账号要有对应数据库的 SELECT 权限。
别信网上那些“改 config.inc.php 加 date()”的方案
有人建议改 phpMyAdmin 的 config.inc.php,往 $cfg['SaveDir'] 或导出配置里塞 PHP 函数,这是无效的:
立即学习“PHP免费学习笔记(深入)”;
-
$cfg['SaveDir']只控制「上传目录」,和导出文件名无关 - 导出逻辑由
export.php和前端 JS 控制,后端 PHP 配置无法注入动态文件名 - 强行改源码会随 phpMyAdmin 升级被覆盖,且极易引发导出失败或乱码
日期格式这种事,浏览器里点两下比改三处配置再测兼容性快得多。真要自动化,就该交给 shell 或 CI/CD 流水线,而不是在 phpMyAdmin 界面里找不存在的开关。



















