【MySQL备份】mysqldump基础篇
目录
1.简介
2.基本用途
3.命令格式
3.1常用选项
3.2常用命令
4.备份脚本
5.定时执行备份脚本
1.简介
mysqldump 是 MySQL 数据库管理系统的命令行实用程序,用于创建数据库的逻辑备份。它能够导出数据库的结构(如表结构、视图、触发器等)以及表中的数据为 SQL 格式的文本文件。
2.基本用途
- 全库备份:可以备份整个 MySQL 服务器上的所有数据库。
- 单数据库备份:仅备份指定的单一数据库。
- 表备份:备份特定数据库中的某几张表。
3.命令格式
mysqldump [选项] [数据库名 [表名...]]
3.1常用选项
| 选项 | 描述 |
|---|---|
-u 用户名, --user=用户名 | 指定连接MySQL服务器的用户名。 |
-p[密码], --password[=密码] | 提供连接MySQL服务器的密码。如果仅使用 -p,将会提示输入密码。为安全起见,建议不在命令行直接暴露密码。 |
-h 主机名, --host=主机名 | 指定MySQL服务器的主机名或IP地址,默认是localhost。 |
-P 端口, --port=端口 | 如果MySQL服务不是运行在默认的3306端口,可以用此选项指定端口号。 |
-A, --all-databases | 备份所有数据库。 |
-B, --databases | 允许指定多个数据库进行备份,后面直接列出数据库名。 |
数据库名 [表名...] | 指定要备份的数据库和可选的表名,如果不指定,则默认备份所有表。 |
> 备份文件路径 | 输出重定向符号,用于指定备份文件的保存路径和名称。 |
--single-transaction | 对于支持事务的存储引擎(如InnoDB),在开始导出前启动一个事务,确保导出数据的一致性,适用于在线备份,无需锁表。 |
--lock-tables=false | 防止在备份时锁定表,通常与 --single-transaction 一起使用,尤其适用于InnoDB表。 |
--routines | 包含数据库中的存储过程和函数到备份中。 |
--triggers | 包含数据库中的触发器到备份中。 |
--events | 包含数据库中的事件调度器事件到备份中。 |
--skip-add-drop-table | 备份时不包含 DROP TABLE 语句,这样在恢复时不会删除已存在的表。 |
--quick | 在转储大表时,使用更快的读取方法,减少内存消耗。 |
3.2常用命令
**导出命令大全**
#导出education数据库里面的users表的表数据和表结构mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] 数据库名 表名 >导出的文件名.sqlmysqldump -uroot -h127.0.0.1 -proot -P3306 education users>d:/user.sql
#导出包括系统数据库在内的所有数据库(all.sql默认保存在bin文件夹下面)mysqldump -uroot -proot --all-databases>all.sql
#导出多张表:mysqldump -uroot -proot --databases test --tables t1 t2>two.sql
#只导出表结构不导表数据,添加“-d”命令参数mysqldump -uroot -h127.0.0.1 -proot -P3306 -d education users>d:/user.sql
#只导出表数据不导表结构,添加“-t”命令参数mysqldump -uroot -h127.0.0.1 -proot -P3306 -t education users>d:/user.sql
#只导出test数据库的表结构导出:mysqldump -uroot -proot --no-data --databases test>s1.sql导入:mysql -uroot -proot -h127.0.0.1 -P3306 test<s1.sql**导入命令大全**格式:mysql -h[ip] -P[(大写)端口] -u[用户名] -p[密码] [数据库名] < d:XX.sql(路径) mysql -uroot -proot -h127.0.0.1 -P3306 education<d:/database.sqlmysql -uroot -proot -h127.0.0.1 -P3306 <d:/all_database.sql
#命令行导入mysql> use test;mysql> source /home/test/database.sql
4.备份脚本
#!/bin/bash# 设置脚本名称、日期等信息
NAME="MySQL Database Backup Script"
DATE=$(date +%Y-%m-%d-%H-%M)
LOG_FILE="/var/log/mysql_backup.log"# 使用环境变量或配置文件读取敏感信息,提高安全性
source /etc/mysql_backup.conf 2>/dev/null # 假设配置文件存放于此路径# 若配置文件不存在,则设置默认值或提示错误
: ${MYSQL_USER:=mysql_user_not_set}
: ${MYSQL_PASSWORD:=mysql_passwd_not_set}
: ${MYSQL_HOST:=localhost}
: ${MYSQL_PORT:=3306}
: ${MYSQL_CHARSET:=utf8mb4}
: ${BACKUP_PATH:=/backups/mysql}
: ${MAX_BACKUPS:=10}
: ${EMAIL_TO:=you@example.com}
: ${EMAIL_FROM:=backup_script@example.com}# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_PATH"# 获取当前日期时间,用于备份文件命名
DATE_TIME=$(date +%Y%m%d_%H%M%S)# 执行备份并压缩
mysqldump --opt --all-databases --single-transaction --flush-logs --master-data=2 \-h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD \| gzip > "$BACKUP_PATH/mysql_backup_$DATE_TIME.sql.gz"if [ $? -eq 0 ]; thenecho "$(date) - 数据库备份成功" >> "$LOG_FILE"# 删除超出保留数量的旧备份find "$BACKUP_PATH" -name "*.sql.gz" -type f | sort | head -n -$MAX_BACKUPS | xargs -r rm -fecho "$(date) - 已清理过期备份文件" >> "$LOG_FILE"# 发送邮件通知(需要安装mail或msmtp等工具){echo "主题: MySQL 数据库备份通知"echo "From: $EMAIL_FROM"echo "To: $EMAIL_TO"echo ""echo "数据库备份已完成,备份文件:mysql_backup_$DATE_TIME.sql.gz"echo "备份路径:$BACKUP_PATH"} | mail -s "$(echo -e "MySQL Backup on $DATE")" "$EMAIL_TO"
elseecho "$(date) - 数据库备份失败,请检查错误日志" >> "$LOG_FILE"# 发送错误通知{echo "主题: MySQL 数据库备份失败通知"echo "From: $EMAIL_FROM"echo "To: $EMAIL_TO"echo ""echo "数据库备份失败,请立即检查。"} | mail -s "$(echo -e "MySQL Backup Failure on $DATE")" "$EMAIL_TO"
fi
说明:
- 环境变量: 使用环境变量读取敏感信息,可以提高脚本的灵活性和安全性。这里假设存在一个
/etc/mysql_backup.conf配置文件来集中管理这些变量,以避免硬编码。- 日志记录: 添加了日志文件,用于记录备份操作的详细信息,方便追踪和审计。
- 备份压缩: 使用
gzip命令对备份文件进行压缩,减少存储空间占用。- 自动清理: 使用
find命令自动清理超过保留数量的旧备份文件,提高了脚本的自动化程度。- 邮件通知: 添加了成功和失败的邮件通知功能,可以及时提醒管理员备份状态,
5.定时执行备份脚本
-
编辑Crontab配置:首先,打开终端并以您的用户身份运行
crontab命令来编辑Cron配置。如果您想要以root用户身份执行备份,可以使用sudo crontab -e,否则,只需输入crontab -e。 -
添加定时任务:在打开的Crontab文件中,移动光标到文件末尾,然后添加以下行来设定定时任务。假设您的备份脚本名为
mysql_backup.sh,且该脚本位于/usr/local/bin/目录下:0 2 * * * /usr/local/bin/mysql_backup.sh这行的意思是:每天的凌晨2点0分执行
/usr/local/bin/mysql_backup.sh脚本。Cron任务的时间格式为分钟 小时 日 月 星期,从左到右依次对应。 -
保存并退出:编辑完成后,保存文件并退出编辑器。大多数情况下,您可以通过按下
Ctrl+X,然后按Y键确认保存,最后按回车键退出。 -
测试与验证:您可以通过查看Cron的日志(通常是
/var/log/syslog或/var/log/cron.log,具体取决于您的系统配置)来确认任务是否按时执行,或者等待下一个执行时间点查看是否收到了邮件通知(如果您的脚本配置了邮件通知功能)。
相关文章:
【MySQL备份】mysqldump基础篇
目录 1.简介 2.基本用途 3.命令格式 3.1常用选项 3.2常用命令 4.备份脚本 5.定时执行备份脚本 1.简介 mysqldump 是 MySQL 数据库管理系统的命令行实用程序,用于创建数据库的逻辑备份。它能够导出数据库的结构(如表结构、视图、触发器等…...
C# Halcon目标检测算法
在Halcon中进行目标检测可以使用传统的计算机视觉方法,也可以使用深度学习的方法。Halcon提供了丰富的函数库来处理这些任务,而在C#中使用Halcon,你需要通过Halcon .NET接口。 以下是使用Halcon进行目标检测的一般步骤,这里我将给…...
7.4总结
今天写了几道题目 最近,一年级学生马克西姆学习了科拉兹猜想,但他在讲课时没有太注意,所以他认为猜想中提到了以下过程: 有一个变量 $$$x$$$ 和一个常数 $$$y$$$ 。下面的操作要执行 $$$k$$$ 次: - 将 $$$x$$$ 增加…...
知识图谱查询语言的表示
文章目录 SPARQL知识图谱查询基本构成常见的SPARQL查询算子语义Markup表示语言SPARQL知识图谱查询基本构成 RDF 支持类似数据库的查询语言,叫作SPARQL,它提供了查询RDF 数据的标准语法、处理SPARQL查询的规则以及结果返回形式。 变量,RDF中的资源,以“?”或者“$”指示;…...
重生之我要学后端100--计算机网络部分概念(持续更新)
TCP/IP、DNS、负载均衡器等等 前言一、TCP/IP(传输控制协议/互联网协议)二、DNS(域名系统)三、负载均衡器其他网络概念 前言 了解网络基础知识对于后端开发者至关重要,因为这些知识有助于理解应用程序是如何在更广阔的…...
时空预测+特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比
时空预测特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比 目录 时空预测特征分解!高性能!EMD-Transformer和Transformer多变量交通流量时空预测对比效果一览基本介绍程序设计参考资料 效果一览 基本介绍…...
Vue 循环内部获取图片高度
在vue循环里面获取图片宽度或者高度,有时候会用到,则可以 <div classconmon v-for"(item, index) in items"><router-link :to"{path: /art/details,query:{artid:item.app_id,item_id:item.image_id}}"><img :src"item.src" al…...
vue动态组件与插件到底是什么?
background: yellow; } 子组件1 <ul><li v-for"item of items" :key"item"><input type"checkbox" />{{ item }}</li></ul>子组件2 PostMail 子组件3 RecycleBin  符号的含义
您已经很好地解释了 SQL 查询中 () 符号的含义,它确实用于表示左外连接(LEFT OUTER JOIN),这是 SQL 中的一种连接操作。以下是对您提供的信息的补充和完善: ### 左外连接(LEFT OUTER JOIN)&…...
基于Vue的MOBA类游戏攻略分享平台
你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术、SpringBoot框架、B/S模式、Vue.js 工具:MyEclipse、MySQL 系统展示 首页 用…...
如何在PhpStorm中运行SQL文件?
如何在PhpStorm中运行SQL文件? 提问:如何在PhpStorm中运行SQL文件? 解答:本文将详细介绍如何在PhpStorm中运行SQL文件的步骤,包括如何配置数据库连接和执行SQL脚本,并附带示例SQL代码。 1. 配置数据库连…...
Qt实现检测软件是否多开
Qt实现检测软件是否多开 在桌面软件开发中,软件通常要设置只允许存在一个进程,像一些熟知的音乐软件,QQ音乐这种。而这些软件在限制只有一个进程的同时,通常还会有双击桌面图标唤醒已运行的后台进程的功能。关于双击桌面唤醒已运…...
spring security + vue,登录功能
前端代码:https://gitee.com/forgot940629/vuelogin 后端代码:https://gitee.com/forgot940629/springbootloginv2 参考代码:https://github.com/PuZhiweizuishuai/SpringSecurity-JWT-Vue-Deom 基于前后端分离实现登录功能。登录成功后后端向…...
64.函数参数和指针变量
目录 一.函数参数 二.函数参数和指针变量 三.视频教程 一.函数参数 函数定义格式: 类型名 函数名(函数参数1,函数参数2...) {代码段 } 如: int sum(int x,int y) {return xy; } 函数参数的类型可以是普通类型,也可以是指针类…...
原创作品 —(金融行业)年金系统交互和视觉设计
金融行业软件交互设计要点:“简化操作流程,确保流畅易用,同时注重交易环境的安全可靠,通过个性化体验提升用户满意度,并及时收集反馈以持续优化。” 2.UI设计要点:“注重视觉效果与用户体验的平衡ÿ…...
3D slicer
...
面试题--SpringCloud
SpringCloud SOA 和微服务的区别?(必会) 谈到 SOA 和微服务的区别, 那咱们先谈谈架构的演变 1. 集中式架构 项目功能简单, 一个项目只需一个应用, 将所有功能部署在一起, 这样的架构好处是减 少了部署节点和成本. 缺点: 代码耦合,开发维护困难 2. 垂直拆分架构 …...
Qt windeployqt 打包的Qt动态库介绍
前言 在 Windows 平台,通常使用 Qt 的工具 windeployqt 将可执行文件的相关 Qt 依赖项部署到当前路径下。 Windows windeployqt 部署工具 Windows 部署工具 windeployqt 旨在自动化创建一个可部署文件夹的过程,该文件夹包含运行应用程序所需的 Qt 相关…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
