【MySql】【备份数据库】【docker】dump配置定时脚本备份MySql数据库

本文介绍如何在Docker环境下使用crontab定时备份MySQL数据库的详细步骤。包括编写备份脚本、设置定时任务及执行效果展示,适用于需要定期备份数据库的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、利用crontab自动执行脚本任务

crontab -e

2、备份数据库

2.1、正常安装下的MySql编写脚本任务

#每天24点执行:0 */24 * * *   
#mysql自带的备份程序:/usr/bin/mysqldump 
#数据库账号: -u账户
#数据库账号对应的密码:-p密码
#选择数据库:--databases 数据库名称 
#存储的地址(目前是年月日 时分秒):> /opt/mysqlBak/yn_js_test_`date +\%Y-\%m-\%d-\%H:\%M:\%S`.sql

0 */24 * * *  /usr/bin/mysqldump  -u账户 -p密码 --databases 数据库名称  > /opt/mysqlBak/yn_js_test_`date +\%Y-\%m-\%d-\%H:\%M:\%S`.sql

示例(账户:root、密码:123456、数据库:test_bak)
0 */24 * * *  /usr/bin/mysqldump  -uroot -p123456 --databases test_bak  > /opt/mysqlBak/yn_js_test_`date +\%Y-\%m-\%d-\%H:\%M:\%S`.sql

2.2、docker下的MySql编写脚本任务

#每天24点执行:0 */24 * * *   
#mysql自带的备份程序:/usr/bin/mysqldump 
#数据库账号:-u账户
#数据库账号对应的密码:-p密码
#选择数据库:--databases 数据库名称 
#存储的地址(目前是年月日 时分秒):> /opt/mysqlBak/yn_js_test_`date +\%Y-\%m-\%d-\%H:\%M:\%S`.sql

0 */24 * * * docker exec -i docker_mysql /bin/bash -c 'mysqldump -u账户 -p密码 --databases 数据库名称' > /home/docker/mysql/other/fag_`date +\%Y-\%m-\%d-\%H:\%M:\%S`.sql

示例(账户:root、密码:123456、数据库:test_bak)
0 */24 * * * docker exec -i docker_mysql /bin/bash -c 'mysqldump -uroot -p123456 --databases test_bak' > /home/docker/mysql/other/fag_`date +\%Y-\%m-\%d-\%H:\%M:\%S`.sql

3、保存定时任务

:wq!

4、执行效果

在这里插入图片描述

### 如何在 Docker 中对 MySQL 数据库执行回滚操作 在 Docker 容器中管理 MySQL 数据库的回滚操作通常涉及以下几个方面:通过 SQL 命令手动执行事务回滚、利用备份文件恢复数据状态以及结合外部工具实现更复杂的版本控制。 #### 手动执行事务回滚 如果当前会话正在进行中的事务需要被撤销,则可以通过 `ROLLBACK` 命令完成此过程。假设有一个名为 `mysql-test` 的容器正在运行并连接到 MySQL 实例,可以进入该容器并通过命令行访问数据库: ```bash docker exec -it mysql-test bash mysql -u root -p ``` 随后,在 MySQL 提示符下输入以下语句来终止当前事务[^1]: ```sql ROLLBACK; ``` 这将撤消尚未提交的所有更改,并使数据库返回到最后一次成功的提交点。 #### 使用备份文件进行逻辑层面的数据回滚 当需要回到某个特定时间点的状态时,最常见的方式是从之前的备份还原数据。首先确认存在有效的备份文件(例如 `/backup/mysql_dump.sql.gz`),接着停止目标容器以防止写入冲突: ```bash docker stop mysql-test ``` 之后重新启动一个新的临时容器用于导入旧版数据: ```bash docker run --rm --volumes-from mysql-test -v /backup:/backup mysql sh -c 'zcat /backup/mysql_dump.sql.gz | mysql -uroot -p' ``` 完成后再次验证服务是否正常工作[^2]: ```bash docker start mysql-test docker logs mysql-test ``` #### 自定义镜像构建与环境变量配置优化流程 对于频繁变更需求较高的场景来说,建议预先制作包含初始化脚本及相关依赖项在内的自定义镜像。然而需要注意的是,某些情况下可能会遇到拉取指定标签失败等问题,比如错误提示类似于 “Unable to find image 'docker/compose:1.23.0-rc2' locally” 这样的情况就需要检查网络连通性和仓库地址准确性[^3]。 最终解决方案可能还需要考虑更多因素如业务连续性计划等实际生产环境中常见的考量要素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值