如何在GoDaddy主机上通过Cronjob实现MySQL数据库完整每日备份
MySQL完整备份(含函数、存储过程)解决方案
你的mysqldump命令默认仅导出表结构和数据,要包含存储过程、函数这类数据库对象,需添加特定参数,以下是修改方案:
修改后的完整备份命令
mysqldump --opt -Q --routines --triggers -h [myhost] -u myusername -p"*****" ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
关键参数说明
--routines:强制导出所有存储过程和自定义函数,这是解决当前问题的核心参数--triggers:导出每张表关联的触发器(若业务用到触发器,建议保留以确保备份完整性)-Q:用数据库名.表名的格式导出对象,避免跨库恢复时的命名冲突--opt:整合了--add-drop-table、--add-locks等多个优化参数,提升备份效率和恢复兼容性
额外安全建议
命令行明文写密码存在安全风险,建议通过配置文件存储认证信息:
- 在执行备份的用户家目录创建
.my.cnf文件,添加以下内容:
[mysqldump] user=myusername password=***** host=[myhost]
- 修改文件权限确保仅当前用户可读:
chmod 600 ~/.my.cnf
- 简化后的备份命令:
mysqldump --opt -Q --routines --triggers ebooklibrary > /fullpath.../_db_backups/openelibrary.sql
权限注意事项
执行备份的MySQL用户需拥有SELECT和SHOW ROUTINE权限,否则无法导出存储过程和函数。
内容的提问来源于stack exchange,提问作者Mitali Patel
相关产品推荐
相关产品推荐

