【MySQL基础】数据库的备份与还原
MySQL学习:
https://blog.csdn.net/2301_80220607/category_12971838.html?spm=1001.2014.3001.5482
前言:
在数据库管理中,删除操作是不可逆的,因此备份是数据安全的重要保障。下面我将详细介绍MySQL数据库删除前的备份方法,以及需要恢复时的还原步骤,并提供多种场景下的解决方案。
目录
一、删除前的备份策略
1. 使用mysqldump工具备份(推荐)
2. 直接复制数据文件(物理备份)
二、数据库删除操作
三、数据库还原方法
1. 使用mysql命令还原mysqldump备份
2. 还原物理备份
四、高级备份与还原技巧
1. 增量备份与恢复
2. 使用Percona XtraBackup(适合大型数据库)
五、备份验证与自动化
1. 备份验证方法
2. 自动化备份脚本示例
六、注意事项与常见问题
1. 关键注意事项
2. 常见问题解决
一、删除前的备份策略
1. 使用mysqldump工具备份(推荐)
mysqldump
是MySQL官方提供的备份工具,可以生成包含所有数据和结构的SQL文件。
完整备份命令:
mysqldump -u [用户名] -p[密码] --databases [数据库名] > backup.sql
实际示例:
# 备份单个数据库
mysqldump -u root -p123456 --databases my_shop > my_shop_backup_$(date +%Y%m%d).sql# 备份多个数据库
mysqldump -u root -p123456 --databases db1 db2 db3 > multi_db_backup.sql# 备份所有数据库(需谨慎)
mysqldump -u root -p123456 --all-databases > full_backup.sql
关键参数说明:
参数 | 作用 | 推荐场景 |
---|---|---|
--single-transaction | 保证备份一致性 | InnoDB表 |
--routines | 包含存储过程和函数 | 需要备份程序逻辑 |
--events | 包含事件 | 使用事件调度器时 |
--triggers | 包含触发器 | 表有触发器时 |
--no-data | 只备份结构 | 仅需表结构 |
2. 直接复制数据文件(物理备份)
对于MyISAM存储引擎或需要快速备份的大型数据库:
-
停止MySQL服务
systemctl stop mysql
-
复制数据目录(默认通常在/var/lib/mysql)
cp -R /var/lib/mysql /backup/mysql_backup
-
重启MySQL服务
systemctl start mysql
注意事项:
-
需要root权限
-
备份期间数据库不可用
-
恢复时MySQL版本最好一致
二、数据库删除操作
确认备份完成后,执行删除命令:
-- 安全删除(推荐)
DROP DATABASE IF EXISTS database_to_delete;-- 强制删除(不推荐)
DROP DATABASE database_to_delete;
三、数据库还原方法
1. 使用mysql命令还原mysqldump备份
基本还原命令:
mysql -u [用户名] -p[密码] < backup_file.sql
实际示例:
# 还原单个数据库备份
mysql -u root -p123456 < my_shop_backup_20230815.sql# 还原到不同数据库名
mysql -u root -p123456 -e "CREATE DATABASE new_shop;"
mysql -u root -p123456 new_shop < my_shop_backup.sql
2. 还原物理备份
-
停止MySQL服务
systemctl stop mysql
-
恢复数据文件
rm -rf /var/lib/mysql/* cp -R /backup/mysql_backup/* /var/lib/mysql/ chown -R mysql:mysql /var/lib/mysql
-
重启MySQL服务
systemctl start mysql
四、高级备份与还原技巧
1. 增量备份与恢复
使用二进制日志(binlog)实现增量备份:
-
查看当前binlog位置
SHOW MASTER STATUS;
-
定期执行(如每天):
mysqlbinlog --start-position=位置 --stop-position =位置 /var/lib/mysql/mysql-bin.00000X > incr_backup.sql
-
恢复时先还原完整备份,再按顺序应用增量备份
2. 使用Percona XtraBackup(适合大型数据库)
热备份命令:
xtrabackup --backup --user=root --password=123456 --target-dir=/backup/
恢复步骤:
xtrabackup --prepare --target-dir=/backup/
xtrabackup --copy-back --target-dir=/backup/
五、备份验证与自动化
1. 备份验证方法
# 检查备份文件完整性
head -n 10 backup.sql | grep "MySQL dump"
tail -n 10 backup.sql | grep "Dump completed"# 测试还原到临时数据库
mysql -u root -p123456 -e "CREATE DATABASE verify_backup;"
mysql -u root -p123456 verify_backup < backup.sql
mysql -u root -p123456 -e "USE verify_backup; SHOW TABLES;"
2. 自动化备份脚本示例
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backups/mysql"
USER="root"
PASS="123456"# 创建备份目录
mkdir -p $BACKUP_DIR# 备份所有数据库
mysqldump -u$USER -p$PASS --all-databases --routines --events > $BACKUP_DIR/full_backup_$DATE.sql# 压缩备份文件
gzip $BACKUP_DIR/full_backup_$DATE.sql# 删除7天前的备份
find $BACKUP_DIR -type f -name "*.gz" -mtime +7 -exec rm {} \;
六、注意事项与常见问题
1. 关键注意事项
-
备份验证:定期测试备份文件的还原能力
-
存储安全:备份文件应与生产环境分离存储
-
权限管理:备份文件应设置适当权限(如600)
-
监控:设置备份任务完成通知
2. 常见问题解决
问题1:备份文件过大怎么办?
-
解决方案:
mysqldump -u root -p123456 --compress database | gzip > backup.sql.gz
问题2:恢复时出现字符集错误?
-
解决方案:明确指定连接字符集
mysql -u root -p123456 --default-character-set=utf8mb4 < backup.sql
问题3:备份过程中连接中断?
-
解决方案:使用
--force
参数忽略错误,或采用分表备份策略
通过以上完整的备份与还原流程,您可以安全地进行数据库删除操作,同时在需要时能够快速恢复数据。记住,备份策略的有效性在于定期测试恢复过程,确保备份文件真实可用。
相关文章:
【MySQL基础】数据库的备份与还原
MySQL学习: https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言: 在数据库管理中,删除操作是不可逆的,因此备份是数据安全的重要保障。下面我将详细介绍MySQL数据库删除前的备份方法&am…...

bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))
1.如图 2.分析 关键报错提示: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) 直译: undefined是不可迭代的(不能读取属性Symbol(Symbol.iterator)) 理解: 有一个值、不存在&#x…...
为UE5的Actor添加能够读写姿态的功能
提问 // Copyright 2019-2022 The MathWorks, Inc. #include "SetGetActorLocation.h"// Sets default values ASetGetActorLocation::ASetGetActorLocation():SignalReader(nullptr), SignalWriter(nullptr) { }void ASetGetActorLocation::Sim3dSetup() { Super::…...

机器学习:支持向量机(SVM)原理解析及垃圾邮件过滤实战
一、什么是支持向量机(SVM) 1. 基本概念 1.1 二分类问题的本质 在机器学习中,分类问题是最常见的任务之一。最简单的情况就是二分类:比如一封邮件是“垃圾邮件”还是“正常邮件”?一个病人是“患病”还是“健康”&a…...

LLM Agent 如何颠覆股价预测的传统范式
写在前面 股价预测,金融领域的“圣杯”之一,吸引了无数研究者和投资者。传统方法从技术指标到复杂的计量经济模型,再到机器学习,不断演进,但市场的高度复杂性、非线性和充斥噪声的特性,使得精准预测依然是巨大的挑战。大型语言模型(LLM)的崛起,特别是LLM Agent这一新…...
App/uni-app 离线本地存储方案有哪些?最推荐的是哪种方案?
以下是 UniApp 离线本地存储方案的详细介绍及推荐方案分析: 一、UniApp 离线本地存储方案分类 1. 基于 uni.storage 系列 API(跨端基础方案) API 及特点: 提供 uni.setStorage(异步存储)、uni.getStorag…...

【案例分享】如何借助JS UI组件库DHTMLX Suite构建高效物联网IIoT平台
随着工业领域数字化进程的持续加快,Web 技术在实现实时监控、数据可视化与控制系统等方面正扮演着越来越核心的角色。来自智利的科技企业 Wise Data Global 就是这一趋势中的积极践行者。他们借助慧都科技代理的 DHTMLX Suite JavaScript UI 控件库,为遥…...

Skia如何绘制几何图形
应用程序(网页、桌面应用或移动应用)大多数都是由基本的几何图形构成的。那我们该如何使用 Skia 绘制基本的几何图形。 画矩形 void drawRect(SkCanvas* canvas) {SkPaint paint;paint.setColor(SK_ColorRED);paint.setStroke(true);paint.setStrokeWid…...

spring:实例化类过程中方法执行顺序。
如题。在实例化Bean时,会根据配置依次调用方法。在此测试代码如下: 在测试类中继承接口InitializingBean,接口InterfaceUserService(该接口为自定义,只是定义set方法)。 InterfaceUserService,…...

设置应用程序图标
(1)找一张图片 (2)然后转ico图片 在线生成透明ICO图标——ICO图标制作 验证16x16就可以 降低exe大小 (3) 在xxx.pro修改 添加 (4) 删除 build 和 xxxpro_user文件 (5)编译project 和运行xx.exe (6)右键 设置快捷方式...

「基于连续小波变换(CWT)和卷积神经网络(CNN)的心律失常分类算法——ECG信号处理-第十五课」2025年6月6日
一、引言 心律失常是心血管疾病的重要表现形式,其准确分类对临床诊断具有关键意义。传统的心律失常分类方法主要依赖于人工特征提取和经典机器学习算法,但这些方法往往受限于特征选择的主观性和模型的泛化能力。 随着深度学习技术的发展,基于…...

用go从零构建写一个RPC(4)--gonet网络框架重构+聚集发包
在追求高性能的分布式系统中,RPC 框架的底层网络能力和数据传输效率起着决定性作用。经过几轮迭代优化,我完成了第四版本的 RPC 框架。相比以往版本,这一版本的最大亮点在于 重写了底层网络框架 和 实现了发送端的数据聚集机制,这…...

OpenBayes 一周速览|TransPixeler 实现透明化文本到视频生成;统一图像定制框架 DreamO 上线,一键处理多种图像生成任务
公共资源速递 2 个公共数据集: * s1K-1.1 数学推理数据集 * HPA 人类蛋白质图谱数据集 3 个公共模型: * MedGemma-4B-IT * Devstral-Small-2505 * DeepSeek-Prover-V2-7B 12 个公共教程: 视频生成 * 2 语音交互 * 3 代码生成 * 3 …...
视频的分片上传,断点上传
上传功能的实现,点击上传按钮,判断添加的文件是否符合要求,如果符合把他放入文件列表中,并把他的状态设置为等待中,对于每个文件,把他们切分为chunksize大小的文件片段,再检查他的状态是否为…...
CSS 性能优化
目录 CSS 性能优化CSS 提高性能的方法1. 选择器优化1.1 选择器性能原则1.2 选择器优化示例 2. 重排(Reflow)和重绘(Repaint)优化2.1 重排和重绘的概念2.2 触发重排的操作2.3 触发重绘的操作2.4 优化重排和重绘的方法 3. 资源优化3…...
华为×小鹏战略合作:破局智能驾驶深水区的商业逻辑深度解析
当中国智能电动车竞争进入下半场,头部玩家的合纵连横正在重构产业格局。华为与小鹏汽车近日官宣的“战略合作”,表面看是技术互补的常规操作,实则暗藏改写行业游戏规则的深层商业逻辑。 一、技术破壁:从“单点突破”到“全栈协同”…...

4D毫米波雷达产品推荐
供应商链接 :https://mp.weixin.qq.com/s/GYarrc9VEZS0FafxRUeG9w 大陆 ARS548 采埃孚 博世 安波福 -------- Waymo MobileEye 华为(未找到官网资料) ------- 森思泰克 http://www.whst.com/contact.html 芜湖经济技术开发区东区…...

yolo 训练 中间可视化
yolo训练前几个batch,会可视化target: if plots and ni < 33:f save_dir / ftrain_batch{ni}.jpg # filenameplot_images(imgs, targets, paths, f, kpt_labelkpt_label)...

Rust 学习笔记:关于 Cargo 的练习题
Rust 学习笔记:关于 Cargo 的练习题 Rust 学习笔记:关于 Cargo 的练习题问题一问题二问题三问题四问题五问题六问题七 Rust 学习笔记:关于 Cargo 的练习题 参考视频: https://www.bilibili.com/video/BV1xjAaeAEUzhttps://www.b…...

光伏功率预测 | BiLSTM多变量单步光伏功率预测(Matlab完整源码和数据)
光伏功率预测 | BiLSTM多变量单步光伏功率预测(Matlab完整源码和数据) 目录 光伏功率预测 | BiLSTM多变量单步光伏功率预测(Matlab完整源码和数据)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 光伏功率预测 | BiLSTM多变…...

20250606-C#知识:委托和事件
C#知识:委托和事件 使用委托可以很方便地调用多个方法,也方便将方法作为参数进行传递 1、委托 委托是方法的容器委托可以看作一种特殊的类先定义委托类,再用委托类声明委托变量,委托变量可以存储方法 delegate int Calculate(in…...

AI数字人技术革新进行时:井云数字人如何重塑人机交互未来?
老板们注意了!不用反复真人出镜拍摄,AI数字人来帮你做口播,只需3分钟克隆你的形象和声音,输入文案24小时随时都能生成视频! 在元宇宙概念持续升温、虚拟与现实加速融合的当下,AI数字人正以惊人的速度从科幻…...

ruoyi-plus-could 负载均衡 通过 Gateway模块配置负载均衡
这个很简单的,其实都不用配置。 在nacos中ruoyi-gateway.yml配置文件里面: 其实他已经给我们配置好了,只要uri:lb有【lb】就表示负载均衡配置 我们只需要在启动服务的时候改下端口就可以。 然后通过小工具测试下: 结…...
江科大读写内部flash到hal库实现
hal库相关代码 进程结构体 typedef struct {__IO FLASH_ProcedureTypeDef ProcedureOnGoing; /*表示闪存操作过程中的不同状态或过程类型*/__IO uint32_t DataRemaining; /*记录尚未完成的页数或者半字数*/__IO uint32_t Address; /…...

Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满! 目录 Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满…...

主流 AI IDE 之一的 Cursor 介绍
一、什么是 Cursor Cursor 是由 Anysphere 公司开发的 AI 驱动的代码编辑器(IDE);Anysphere 成立于 2022 年,创始团队包括来自麻省理工学院(MIT)的毕业生,如联合创始人 Aman Sanger 和 Michael …...

0x-1 记一次SGA PGA设置失败,重新开库
0、生产侧定时平台上传数据库11g hang,修改无法startup 厂商统一发放的虚拟机作为前置机导入平台后,直接开机使用。主机在虚拟化平台中,实例卡死后,按照虚拟机系统64G,原SGA2g,不知哪个大聪明给默认设置的。保守计划修…...

【科研绘图系列】R语言绘制和弦图(Chord diagram plot)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理相关性计算和弦图系统信息介绍 本文介绍了一个基于R语言的数据分析和可视化流程,主要用于生成和弦图(Chord Diagram)。和弦图是一种用于展示…...

PPT转图片拼贴工具 v3.0
软件介绍 这个软件就是将PPT文件转换为图片并且拼接起来。 这个代码支持导入单个文件也支持导入文件夹 但是目前还没有解决可视化界面问题。 效果展示 软件源码 import os import re import win32com.client from PIL import Image from typing import List, Uniondef con…...

关于安科瑞APD局部放电监测装置解决方案的应用分析
1 什么是局部放电? 局部放电(Partial Discharge, PD)是指发生在电气设备绝缘系统局部区域的、未贯穿整个电极的微小放电现象。它通常发生在高压电气设备(如变压器、开关柜、电缆、GIS等)内部存在绝缘缺陷、电场集中或…...