mysqldump 生成.gz文件

本文介绍了一种利用mysqldump工具结合gzip压缩命令来备份MySQL数据库的方法。通过设置字符集为UTF-8并指定主机名、用户名及密码等参数,实现了将bookoo_sse_tsohuweibo数据库导出并压缩成.gz文件的过程。

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

mysqldump 生成.gz文件

mysqldump --default-character-set=utf8 -h${HOST} -u${USER} -p${PASS} bookoo_sse_tsohuweibo |gzip > bookoo_sse_tsohuweibo`date +%Y%m%d`.gz


### 将 Docker 中 MySQL 数据库导出并压缩为 tar.gz 文件 为了实现这一目标,可以分为几个部分来处理:首先是从正在运行的 MySQL 容器中备份数据;其次是将这些备份的数据保存到主机上;最后是对该备份文件进行打包和压缩。 #### 备份 MySQL 数据库至宿主机 可以通过 `docker exec` 命令进入容器内部执行 mysqldump 来创建 SQL 脚本形式的数据库备份。假设已经有一个名为 `mysql` 的容器在运行: ```bash docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path/on/host/all-database.sql ``` 这条命令会把所有的数据库都转储成一个单一的 `.sql` 文件,并将其存储在宿主机上的指定路径下[^1]。 #### 创建卷快照以便安全复制 对于更稳定的方式,在生产环境中推荐先停止写入操作再做备份,或者利用 LVM 或者其他方式制作磁盘快照。这里介绍一种简单的方法——使用临时容器挂载相同的 volume 并从中拷贝所需目录出来: ```bash docker run --rm --volumes-from mysql -v $(pwd):/backup ubuntu bash -c "tar czvf /backup/mysql_backup.tar.gz /var/lib/mysql" ``` 这段脚本启动了一个新的 Ubuntu 容器,它与原始 MySQL 容器共享同一个 Volume (`--volumes-from`) ,然后在这个新容器里创建了 `/var/lib/mysql` 目录的一个压缩包(`.tar.gz`),并将此存档放置于当前工作目录下的 `./mysql_backup.tar.gz` 文件中[^3]。 这种方法不仅能够确保获取完整的数据库状态副本,而且不会影响原生服务进程的工作负载。 #### 使用 Compose 自动化流程 (可选) 如果项目结构允许的话,也可以考虑编写一个简单的 docker-compose.yml 文件来简化上述过程。例如设置定时任务或者其他自动化工具触发这个 compose 配置来进行周期性的自动备份作业。 ```yaml version: '3' services: backup: image: alpine command: > sh -c " apk add --no-cache gzip && mkdir -p /data/backup && tar czf /data/backup/mysql_$(date +%F_%T).tar.gz /var/lib/mysql; " volumes_from: - ./backups:/data/backup ``` 以上配置会在每次调用时生成一个新的时间戳命名的归档文件位于本地机器的 `./backups` 文件夹内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值