
将MySQL数据库备份到任何位置!
详情请参见https://github.com/databacker/mysql-backup
mysql-backup是一种简单的MySQL数据库备份、恢复及管理工具。
其主要特性包括:
贡献者列表请参见https://github.com/databacker/mysql-backup/tree/master/CONTRIBUTORS.md%E3%80%82
当前为最新版本,基于2023年底完成的Golang代码库完全重构,对应1.0.0版本发布。
支持可通过databack Slack频道获取;注册此处。我们接受此处的问题报告及Slack上的一般支持问题。
如需商业支持,请通过上述Slack联系我们。
mysql-backupmysql-backup提供独立二进制文件和容器镜像两种形式。
运行备份时,需以容器或二进制形式启动mysql-backup并指定正确参数。
例如:
bashdocker run -d --restart=always -e DB_DUMP_FREQUENCY=60 -e DB_DUMP_BEGIN=2330 -e DB_DUMP_TARGET=/local/file/path -e DB_SERVER=my-db-address -v /local/file/path:/db databack/mysql-backup dump # 或 mysql-backup dump --frequency=60 --begin=2330 --target=/local/file/path --server=my-db-address # 或通过unix域套接字连接本地mysqld(当前用户) mysql-backup dump --frequency=60 --begin=2330 --target=/local/file/path --server=/run/mysqld/mysqld.sock
或使用配置文件:mysql-backup --config-file=/path/to/config/file.yaml,配置文件内容如下:
yamlserver: my-db-address dump: frequency: 60 begin: 2330 target: /local/file/path
上述配置将从my-db-address容器访问的数据库中,每60分钟执行一次备份,首次备份从当天23:30开始。
指定用户密码的示例:
bashdocker run -d --restart=always -e DB_USER=user123 -e DB_PASS=pass123 -e DB_DUMP_FREQUENCY=60 -e DB_DUMP_BEGIN=2330 -e DB_DUMP_TARGET=/db -e DB_SERVER=my-db-address -v /local/file/path:/db databack/mysql-backup dump # 或 mysql-backup dump --user=user123 --pass=pass123 --frequency=60 --begin=2330 --target=/local/file/path --server=my-db-address --port=3306
备份详细说明参见https://github.com/databacker/mysql-backup/tree/master/docs/backup.md%EF%BC%8C%E6%89%80%E6%9C%89%E9%85%8D%E7%BD%AE%E9%80%89%E9%A1%B9%E5%8F%82%E8%A7%81https://github.com/databacker/mysql-backup/tree/master/docs/configuration.md%E3%80%82
执行恢复操作时,流程相反,需使用restore命令并指定恢复目标。仍需连接数据库,但需替换为恢复相关参数。
恢复现有数据库时,需设置以下环境变量(建议使用--env-file=避免敏感信息泄露到shell历史):
DB_SERVER:数据库连接地址(主机名或unix域套接字路径,以斜杠开头),必填。DB_PORT:数据库端口,可选,默认3306。DB_USER:数据库用户名。DB_PASS:数据库密码。DB_NAMES:需恢复的数据库名称,空格分隔,SINGLE_DATABASE=true时必填。SINGLE_DATABASE:若设为true,DB_NAMES必填且只能包含一个数据库名,此时MySQL命令将添加--database=$DB_NAMES参数,无需USE <database>;语句,适用于从SINGLE_DATABASE=true备份的文件恢复。DB_RESTORE_TARGET:恢复文件路径(压缩备份文件),支持绝对路径(需挂载卷)、SMB或S3 URL。DB_DUMP_DEBUG:设为true时,恢复过程将输出详细日志。AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_DEFAULT_REGION。恢复示例:
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -v /local/path:/backup databack/mysql-backup restore
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -e RESTORE_OPTS="--ssl-cert /certs/client-cert.pem --ssl-key /certs/client-key.pem" -v /local/path:/backup -v /local/certs:/certs databack/mysql-backup restore
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=smb://smbserver/share1/backup/db_backup_201509271627.gz databack/mysql-backup restore
bashdocker run -e DB_SERVER=gotodb.example.com -e AWS_ACCESS_KEY_ID=awskeyid -e AWS_SECRET_ACCESS_KEY=secret -e AWS_REGION=eu-central-1 -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=s3://bucket/path/db_backup_201509271627.gz databack/mysql-backup restore
多库备份文件可选择恢复部分数据库,或重命名恢复单个数据库(需备份和恢复时均设置SINGLE_DATABASE=true)。
示例:
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -v /local/path:/backup databack/mysql-backup dump
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -e DB_NAMES="database1 database3" -v /local/path:/backup databack/mysql-backup restore
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e SINGLE_DATABASE=true -e DB_NAMES=database1 -v /local/path:/backup databack/mysql-backup dump
bashdocker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -e SINGLE_DATABASE=true -e DB_NAMES=newdatabase1 -v /local/path:/backup databack/mysql-backup restore
恢复详细说明参见https://github.com/databacker/mysql-backup/tree/master/docs/restore.md%EF%BC%8C%E6%89%80%E6%9C%89%E9%85%8D%E7%BD%AE%E9%80%89%E9%A1%B9%E5%8F%82%E8%A7%81https://github.com/databacker/mysql-backup/tree/master/docs/configuration.md%E3%80%82
MIT许可证。版权所有Avi Deitcher https://github.com/deitch
以下是 databack/mysql-backup 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务