mysql8数据库备份

1、背景

mysql 8备份策略,备份7天,每天全量备份一次。

2、方案

在 MySQL 8 中,你可以使用 mysqldump 工具来创建数据库的全量备份。要实现每天全量备份一次,并且保留最近7天的备份,你可以设置一个自动化的备份策略,通常通过编写一个 shell 脚本并使用 cron 定时任务来实现。

3、备份实现

3.1 创建备份脚本

创建一个名为 mysql_backup.sh 的脚本文件,内容如下:

复制代码
#!/bin/bash

# 设置数据库访问信息
DB_USER="root"
DB_PASSWORD="123456"
DB_HOST="localhost"

# 设置备份文件的存储路径
BACKUP_DIR="/root/mysql-back/data"

# 获取当前日期,格式为 YYYYMMDD
CURRENT_DATE=$(date +%Y%m%d)

# 创建备份文件的名称
BACKUP_FILE="$BACKUP_DIR/db_backup_$CURRENT_DATE.sql"

# 执行 mysqldump 命令,创建全量备份
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASSWORD --databases mytest1 mytest2 mytest3 > $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "Backup successful: $BACKUP_FILE"
else
    echo "Backup failed"
    exit 1
fi

# 删除7天前的备份文件
find $BACKUP_DIR -name 'db_backup_*.sql' -type f -mtime +7 -exec rm {} \;
  • 修改脚本:请确保替换 your_username、your_password 和 /path/to/your/backup/directory 为你的数据库用户名、密码和备份文件存储路径。
  • 生成文件:每天一个文件,文件名示例:db_backup_20241026.sql。
    • 生成方式,如果文件已存在,直接覆盖。

3.2 使脚本可执行

在命令行中运行以下命令,使脚本具有可执行权限:

复制代码
chmod +x mysql_backup.sh

3.3 设置定时任务

使用 cron 来设置每天执行一次备份的定时任务。编辑当前用户的 cron 表:

复制代码
crontab -e

在打开的编辑器中,添加以下行来设置每天凌晨1点执行备份脚本:

复制代码
0 1 * * * /path/to/your/mysql_backup.sh

确保替换 /path/to/your/ 为你的脚本实际路径。

3.4 保存并退出

保存 cron 表的更改并退出编辑器。定时任务将自动设置并每天执行。

3.5 mysqldump备份

3.5.1 自定义数据库

复制代码
mysqldump -h [数据库服务器地址] -u [用户名] -p[密码] --databases [数据库] > [备份sql]
  • 数据库可以是多个,如:

    复制代码
    mysqldump -h [数据库服务器地址] -u [用户名] -p[密码] --databases mytest1 mytest2 mytest3 > mytest_backup.sql

3.5.2 全部数据库

复制代码
mysqldump -h [数据库服务器地址] -u [用户名] -p[密码] --all-databases > [备份sql]

4、还原

4.1 指定数据库方式

复制代码
mysql -h [数据库服务器地址] -u [用户名] -p[密码] [目标数据库名称] < [备份sql]

示例

复制代码
mysql -h localhost -u root -pAbc123@# mytest1  < mytest_backup.sql

4.2 不指定数据库方式

如果你的 SQL 文件包含创建数据库的语句,你也可以不指定目标数据库名称,直接导入 SQL 文件

复制代码
mysql -h [数据库服务器地址] -u [用户名] -p[密码]  < [备份sql]

示例

复制代码
mysql -h localhost -u root -p123456  < mytest_backup.sql
相关推荐
xiaoxiangsiyan3 分钟前
网络智能化转型核心模块全解析
运维·服务器·网络·数据库·学习·架构·php
不才不才不不才5 分钟前
Spring 源码系列(25): @EnableTransactionManagement 与 TransactionInterceptor
java·数据库·spring
l1t11 分钟前
DeepSeek总结的DuckDB访谈:DuckDB的崛起、扩展与AWS收购
数据库·云计算·aws·duckdb
隔窗听雨眠20 分钟前
CI/CD测试数据清理完全指南:从污染根因到三层清理覆盖的完整方案
java·数据库·ci/cd
无定义_29 分钟前
Bellman-Ford——贝尔曼福特算法
数据库·算法
盟接之桥35 分钟前
半导体供应链破局:EDI如何成为中国制造的数字通行证
大数据·运维·服务器·网络·数据库·人工智能·制造
其实防守也摸鱼1 小时前
ZLibrary 类项目合规避坑指南:从技术实现到法律风险的全景梳理
运维·服务器·数据库·安全·自动化·github·copilot
2601_967659891 小时前
2026信创深化落地期档案管理系统选型推荐:恒智科技综合档案管理系统
数据库·人工智能·科技
程序员-Benothing1 小时前
数据库的脏读、不可重复读和幻读:从面试标准答案到源码级原理
数据库·面试·职场和发展
wangchunyu1141 小时前
Elasticsearch 入门与实战:Spring Boot 3 + ES 8 从零搭建商品搜索服务
大数据·数据库·spring boot·elasticsearch