mysqldump 定时备份
时间: 2024-10-01 12:01:32 浏览: 64
`mysqldump` 是 MySQL 的一个实用工具,它允许你在 MySQL 数据库服务器上生成数据库结构和数据的备份文件。如果你想定期自动备份 MySQL 数据库,你可以通过配置定时任务来实现。这通常在 Linux 或者 macOS 系统中使用 cron 工具来完成。
1. **创建 crontab 触发**:打开终端,输入 `crontab -e` 来编辑用户的定时任务配置。添加一行类似下面的内容:
```bash
0 0 * * * /usr/bin/mysqldump -p[password] [database_name] > /path/to/backup/directory/[database_name].sql
```
这里:
- `0 0 * * *` 表示每天凌晨0点执行,
- `/usr/bin/mysqldump` 是 mysqldump 命令的路径,
- `[username]` 和 `[password]` 是连接到数据库的用户名和密码,
- `[database_name]` 是你要备份的数据库名,
- 文件路径和名称可根据需要自定义。
2. **设置密码加密**:如果你在命令行中明文输入了密码,可以使用 `--password-file` 参数传递一个包含密码的文件,而不是直接在命令行中显示。
3. **验证备份**:确保备份脚本可以正常运行,你可以先试运行一次看看是否成功,并检查备份文件。
相关问题
mysqldump 定时备份脚本
你可以使用 cron 任务来定时执行 mysqldump 命令来进行备份。以下是一个示例的定时备份脚本:
```shell
#!/bin/bash
# 设置备份文件存储路径
backup_dir="/path/to/backup/directory"
# 设置数据库信息
db_user="your_db_user"
db_password="your_db_password"
db_name="your_db_name"
# 设置备份文件名
backup_file="${backup_dir}/$(date +'%Y%m%d%H%M%S').sql"
# 执行备份
mysqldump -u${db_user} -p${db_password} ${db_name} > ${backup_file}
# 删除过期备份(可选)
find ${backup_dir} -type f -mtime +7 -exec rm {} \;
```
将上述内容保存为一个脚本文件(例如 `backup.sh`),然后使用 crontab 命令来设置定时任务。使用以下命令编辑 cron 表:
```shell
crontab -e
```
在编辑器中添加以下内容以每天凌晨 3 点执行备份:
```shell
0 3 * * * /path/to/backup.sh
```
保存并退出编辑器。现在,每天凌晨 3 点,系统将自动执行备份脚本并生成一个新的备份文件。你可以根据需要调整脚本中的路径和时间设置。
mysqldump自动备份
### 使用 `mysqldump` 实现 MySQL 数据库的自动定期备份
为了实现 MySQL 数据库的自动定期备份,可以通过编写 shell 脚本来调用 `mysqldump` 命令并利用操作系统的计划任务功能来安排该脚本的执行时间。
#### 编写 Shell 脚本
创建一个新的 shell 文件用于存储备份逻辑:
```bash
#!/bin/bash
# 设置日期格式作为文件名的一部分
DATE=$(date +"%Y%m%d_%H%M%S")
# 定义保存位置以及完整的备份文件名称
BACKUP_DIR="/path/to/mysql_backup"
FILENAME="backup_$DATE.sql"
# 执行 mysqldump 并重定向输出至指定路径下的 SQL 文件内
/usr/bin/mysqldump -u root -ppassword dbname > $BACKUP_DIR/$FILENAME
```
此段代码定义了一个简单的 bash script 来运行 `mysqldump` 工具,并把结果存入特定目录中带有当前时间戳标记的新建 .sql 文件里[^2]。
#### 添加 Crontab 计划任务
为了让上述脚本能周期性地被执行,在 Linux 或 Unix 类系统上可借助 crontab 功能完成自动化调度工作。编辑用户的 cron 表单以加入新的作业条目:
```bash
crontab -e
```
向其中添加一行配置项以便每天凌晨两点整触发一次备份过程(假设上面提到的那个 sh file 存放于 `/home/user/backup.sh`):
```text
0 2 * * * /bin/bash /home/user/backup.sh >> /var/log/db-backup.log 2>&1
```
这行表达式的含义是在每夜两点半钟启动这个自定义编写的备份程序,并将其标准输出与错误流都记录在一个日志文档里面方便后续查看是否有异常情况发生[^3]。
通过这种方式就可以轻松达成对 MySQL 数据库实施无人值守式定时备份的目的了。
阅读全文
相关推荐













