You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cron执行数据库表导出失败,生成空.gz文件原因排查

mysqldump导出空.gz文件的原因及解决方法

问题根源

从你的命令和错误输出可以直接定位问题:

  • 命令里-pp;qqee中的分号;是Shell的命令分隔符,Shell会把mysqldump -u root -pp当成第一个独立命令执行,随后将qqee作为第二个命令运行。这导致mysqldump根本没接收到test_db和category这两个参数,直接输出用法提示后退出,没有生成任何数据库导出内容,gzip因此只能生成空的.gz文件。
  • 密码中包含特殊字符;却未用引号包裹,触发了Shell的错误解析。

修正后的命令

如果你的数据库密码是p;qqee,需要将密码用引号包裹,避免Shell解析特殊字符:

mysqldump -u root -p'p;qqee' test_db category | gzip >/home/user/BKP-Category/backup_$( date +"\%Y_\%m_\%d" ).sql.gz

或者使用双引号(适用于不含$这类Shell特殊字符的密码):

mysqldump -u root -p"p;qqee" test_db category | gzip >/home/user/BKP-Category/backup_$( date +"\%Y_\%m_\%d" ).sql.gz

更安全的替代方案

直接在命令或Cron中明文写密码存在泄露风险,建议通过配置文件存储认证信息:

  1. 创建~/.my.cnf配置文件:
[mysqldump]
user=root
password=p;qqee
  1. 设置文件权限(禁止其他用户读取):
chmod 600 ~/.my.cnf
  1. 简化后的导出命令:
mysqldump test_db category | gzip >/home/user/BKP-Category/backup_$( date +"\%Y_\%m_\%d" ).sql.gz

内容的提问来源于stack exchange,提问作者bobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:55:18