将MySQL数据库备份到任何位置!
详情请参见***主页和文档
mysql-backup是一种简单的MySQL数据库备份、恢复及管理工具。
其主要特性包括:
贡献者列表请参见CONTRIBUTORS.md。
当前为最新版本,基于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
备份详细说明参见backup,所有配置选项参见configuration。
执行恢复操作时,流程相反,需使用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
恢复详细说明参见restore,所有配置选项参见configuration。
MIT许可证。版权所有Avi Deitcher [***]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429