mysql如何设置定时自动备份脚本_编写shell脚本与cron任务

必须加--single-transaction(InnoDB)或--lock-all-tables(MyISAM),并搭配--routines--triggers--events、--default-character-set=utf8mb4,密码通过~/.my.cnf(chmod 600)或MYSQL_PWD安全传入,脚本需设PATH、用绝对路径、写全备份路径、重定向stderr,文件按日期命名并用find清理。mysql dump 命令怎么写才不丢数据直接用 mysqldump 默认参数备份,很可能漏掉视图、存储过程、触发器,甚至在有长事务时导致备份不一致。关键不是"能不能导出",而是"导出的能不能原样恢复"。必须加 --single-transaction(InnoDB 表适用),避免锁表又保证一致性;MyISAM 表得用 --lock-all-tables,别混用加上 --routines --triggers --events,否则存储过程和事件不会进备份文件显式指定字符集,比如 --default-character-set=utf8mb4,防止乱码或导入失败不要省略 -h、-P、-u、-p 参数------尤其是 -p 后面**不要直接跟密码**(会暴露在进程列表里),改用配置文件或 MYSQL_PWD 环境变量shell 脚本里怎么安全存数据库密码把密码写死在脚本里等于公开给所有能看 ps aux 的人。Linux 下最稳妥的方式是用 MySQL 的 ~/.my.cnf 配置文件,但权限必须设成 600,否则 mysqldump 会拒绝读取。创建 ~/.my.cnf,内容:[client]host=localhostuser=backup_userpassword=your_real_passwordport=3306立刻执行 chmod 600 ~/.my.cnf,否则脚本运行时会报错:Warning: World-writable config file '/home/user/.my.cnf' is ignored脚本里调用就简化为:mysqldump --single-transaction --routines db_name > backup.sql,不用再传用户密码如果必须用环境变量(比如容器场景),用 MYSQL_PWD=xxx mysqldump ...,但确保该变量不在历史记录或日志中输出cron 执行备份脚本为什么总失败cron 环境非常干净:没有你的 shell profile、没有 PATH、没有当前工作目录保障。脚本在终端能跑,放进 crontab 就报 command not found 或 No such file or directory 是常态。 Fotor AI Image Generator Fotor 平台的 AI 图片生成器

相关推荐
952362 小时前
Spring IoC&DI
java·数据库·spring
尚雷55802 小时前
从电商订单支付更新,吃透 Oracle 数据修改的底层设计哲学与全组件协同原理
数据库·oracle
前进吧-程序员2 小时前
C++ 内存到底分配在哪?
java·jvm·c++
2401_832365522 小时前
Chart.js 4 中基于数据实际范围的线性渐变填充方案
jvm·数据库·python
好运的阿财2 小时前
OpenClaw工具拆解之tts+web_search
前端·javascript·python·ai·ai编程·openclaw·openclaw工具
qq_342295822 小时前
如何让 Bootstrap 图标在 Vue 3 中持续旋转动画
jvm·数据库·python
Sirius.z2 小时前
第J2周:ResNet-50V2算法实战与解析
python
李兆龙的博客2 小时前
从一到无穷大 #70 从 LR 图 PEC 到InfluxQL兼容性差分测试方法论与工程实践
数据库·功能测试·oracle
爱学习的小囧2 小时前
ESXi 开启 Secure Boot 后驱动签名验证失败完整处置教程:合规修复与临时测试方案全解
服务器·数据库·esxi·虚拟化