mysql备份路径不由my.cnf配置决定,而由备份命令参数(如mysqldump重定向、xtrabackup的--target-dir)指定;需确保路径存在、权限正确、空间充足,并验证备份文件有效性。

备份路径配置不是改 MySQL 配置文件就能生效的
MySQL 本身不提供“自动备份路径”配置项,my.cnf 里的 datadir 只控制数据文件存放位置,和备份无关。真正决定备份路径的是你用的备份命令或工具——比如 mysqldump 输出到哪、mysqlpump 的 --result-file 参数、或者 Percona XtraBackup 的 --target-dir。别在 mysqld 配置里找 backup_path 这类选项,找不到。
用 mysqldump 定向备份到指定路径的实操要点
最常用也最容易出错的方式是直接调用 mysqldump 并重定向输出。关键不是“配”,而是“写对命令”:
-
mysqldump -u root -p --databases db1 db2 > /backup/full_$(date +\%F).sql:注意路径/backup/必须存在且 MySQL 运行用户(通常是mysql)有写权限;否则会报Permission denied - 如果加了
--single-transaction或--lock-tables,要确认当前用户有RELOAD和LOCK TABLES权限,否则备份中途失败但文件可能已部分生成,路径里留个残缺文件 - 避免用绝对路径写进 crontab 却忘了设置
PATH环境变量,导致 cron 找不到mysqldump,备份静默失败——建议在脚本开头显式声明:export PATH="/usr/bin:/bin"
自动备份脚本里必须检查的三件事
哪怕只跑一次 mysqldump,也要确保:
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
-
/backup/目录磁盘空间足够:用df -h /backup看,别等备份写到一半报No space left on device - 备份文件名带时间戳且不覆盖:用
$(date +\%Y\%m\%d_\%H\%M)而非固定名,否则每天覆盖,真出事时只剩最新一份 - 备份后验证基础可用性:加一行
head -n 20 /backup/full_*.sql | grep -q "CREATE DATABASE" && echo "backup OK",至少确认文件没空、SQL 头部正常
权限与安全容易被忽略的硬约束
MySQL 备份路径的安全性不只看“能不能写”,更要看“谁能看到、谁能删”:
- 不要把备份放在
/var/www/或 web 可访问目录下,否则http://yoursite.com/backup/full_20240501.sql可能直接暴露全量数据 - 备份文件属主设为
root:root,权限设为600(chmod 600 /backup/*.sql),防止其他普通用户读取 - 如果用
mysqldump的--defaults-extra-file存密码,该文件权限也必须是600,且不能放在家目录外——否则 MySQL 启动时可能因权限问题拒绝读取
路径本身只是个字符串,真正卡住备份成败的,永远是权限、空间、环境变量这三样。写完脚本先手动跑一遍,再扔进 crontab。









