对Docker部署的MySQL中的数据进行备份/恢复

devtools/2024/10/15 19:53:37/

文章目录

1. 启动MySQL容器

docker%20exec%20%E8%BF%90%E8%A1%8C%20mysqldump-toc" style="margin-left:80px;">2. 使用 docker exec 运行 mysqldump

2.1 备份单个数据库

2.2 备份所有数据库

3. 压缩备份文件

3.1 压缩备份单个数据库

3.2 压缩备份所有数据库

4. 自动化备份

4.1 编辑 crontab 文件

4.2 添加备份任务

5. 恢复备份

5.1 恢复单个数据库

5.2 恢复所有数据库

5.3 恢复压缩备份

6. 注意事项


使用Docker部署的MySQL进行备份/恢复与传统方式类似,但需要考虑Docker容器的特殊性。以下是详细的步骤,帮助你在Docker环境中进行MySQL的全量备份。

1. 启动MySQL容器

假设你已经有一个运行中的MySQL容器,可以通过以下命令获取容器ID或名称:

docker ps

docker%20exec%20%E8%BF%90%E8%A1%8C%20mysqldump">2. 使用 docker exec 运行 mysqldump

docker exec 命令允许你在运行中的容器内执行命令。以下是一个示例,备份名为 mydatabase 的数据库:

2.1 备份单个数据库
docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase' > mydatabase_backup.sql

参数说明:

  • <container_name_or_id>: 替换为你的MySQL容器的名称或ID。
  • -u root -p<password>: 替换为你的MySQL用户名和密码。
  • mydatabase: 要备份的数据库名称。
  • > mydatabase_backup.sql: 将备份内容输出到本地文件中。
2.2 备份所有数据库
docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> --all-databases' > all_databases_backup.sql

3. 压缩备份文件

为了节省磁盘空间,可以在备份过程中直接压缩输出文件:

3.1 压缩备份单个数据库
docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase' | gzip > mydatabase_backup.sql.gz
3.2 压缩备份所有数据库
docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> --all-databases' | gzip > all_databases_backup.sql.gz

4. 自动化备份

为了定期自动备份数据库,可以使用 cron 任务。以下是一个示例 crontab 条目,每天凌晨1点备份 mydatabase 并压缩:

4.1 编辑 crontab 文件
crontab -e
4.2 添加备份任务
0 1 * * * docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase' | gzip > /path/to/backup/mydatabase_$(date +\%Y\%m\%d).sql.gz

参数说明:

  • 0 1 * * *: 每天凌晨1点执行。
  • docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase': 在指定的MySQL容器中备份 mydatabase。
  • | gzip: 压缩备份文件。
  • > /path/to/backup/mydatabase_$(date +\%Y\%m\%d).sql.gz: 将备份文件保存到指定路径,并使用日期命名。

5. 恢复备份

恢复备份时,可以使用 mysql 命令将备份文件导入到数据库中。

5.1 恢复单个数据库
docker exec -i <container_name_or_id> mysql -u root -p<password> mydatabase < mydatabase_backup.sql
5.2 恢复所有数据库
docker exec -i <container_name_or_id> mysql -u root -p<password> < all_databases_backup.sql
5.3 恢复压缩备份

如果备份文件是压缩的,需要先解压再恢复:

gunzip < mydatabase_backup.sql.gz | docker exec -i <container_name_or_id> mysql -u root -p<password> mydatabase

6. 注意事项

  • 权限: 确保备份用户有足够的权限访问所有需要备份的数据库和表。
  • 性能: 大型数据库备份可能会对服务器性能产生影响,建议在低峰时段进行备份。
  • 安全性: 不要在脚本中明文存储密码,可以使用配置文件或环境变量来管理密码。
  • 容器状态: 确保MySQL容器在备份时是运行状态。

通过以上步骤,你可以在Docker环境中有效地进行MySQL的备份和恢复。


http://www.ppmy.cn/devtools/126318.html

相关文章

PAT甲级-1079 Total Sales of Supply Chain

题目 题目大意 一个供应链由供应商、经销商和零售商组成。给出总节点个数&#xff0c;商品的价格&#xff0c;和利率r%。各节点从0到n-1编号&#xff0c;给出每个节点对应的孩子节点的个数及孩子节点。如果孩子节点个数为0&#xff0c;说明是零售商&#xff0c;给出零售商当前…

Modbus TCP 西门子PLC指令以太口地址配置以及 Poll Slave调试软件地址配置

1前言 本篇文章讲了 Modbus TCP通讯中的一些以太网端口配置和遇到的一些问题&#xff0c; 都是肝货自己测试的QAQ。 2西门子 SERVER 指令 该指令是让外界设备主动连接此PLC被动连接&#xff0c; 所以这里应该填 外界设备的IP地址。 这边 我因为是电脑的Modbus Poll 主机来…

SpringBoot实战:购物推荐网站的设计与实现技巧

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…

Android 中获取当前 CPU 频率和占用率

最近在优化 App 的性能&#xff0c;需要获取当前 CPU视频频率和占用率&#xff0c;通过查询资料&#xff0c;大致思路如下&#xff1a; 目前没有标准的 API 来获取 CPU 的使用频率&#xff0c;只能通过读取指定 CPU 文件获取当前 CPU 频率&#xff0c;在某些机器或者特定版本中…

理解C语言之深入理解指针(五)

目录 1. sizeof和strlen的对⽐ 1.1 sizeo 1.2 strlen 1.3 sizeof和strlen的对⽐ 2. 数组和指针笔试题解析 2.1 ⼀维数组 2.2 字符数组 2.3 ⼆维数组 3. 指针运算笔试题解析 3.1 题⽬1&#xff1a; 3.2 题⽬2 3.3 题⽬3 3.4 题⽬4 3.5 题⽬5 3.6 题⽬6 3.7 题⽬…

AD9680(adc直采芯片)使用说明

写这篇文章之前我是没有使用过AD9680的芯片&#xff0c;但是使用过GMS011芯片&#xff08;是国内24S&#xff09;下的公司出来的芯片&#xff0c;寄存器和管脚全对标。 在这里我就大概说一下芯片的说用方法 一、硬件设计 该芯片支持双通道射频直采 支持协议JESD204B 14位 采样…

【模型】Self-Attention

Self-Attention 机制&#xff08;Self-Attention Mechanism&#xff09;是近年来深度学习中&#xff0c;特别是自然语言处理&#xff08;NLP&#xff09;任务中广泛应用的一种机制&#xff0c;它最初出现在Transformer架构中&#xff0c;用于捕捉序列数据中的依赖关系。该机制的…

2012年国赛高教杯数学建模A题葡萄酒的评价解题全过程文档及程序

2012年国赛高教杯数学建模 A题 葡萄酒的评价 确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品评。每个评酒员在对葡萄酒进行品尝后对其分类指标打分&#xff0c;然后求和得到其总分&#xff0c;从而确定葡萄酒的质量。酿酒葡萄的好坏与所酿葡萄酒的质量有直接的关系&…