mysql 每日自动备份数据库
在 MySQL 中,你可以使用定时任务来每日自动备份数据库。通常,最常用的方法是使用操作系统的定时任务工具(如cron)来调度备份操作。以下是一些步骤来设置每日定时备份MySQL数据库:
-
创建备份脚本:首先,创建一个备份脚本,该脚本将执行MySQL备份操作。你可以使用mysqldump命令来执行备份。以下是一个简单的备份脚本示例(假设你已经设置了MySQL用户名和密码的环境变量):
#!/bin/bash# 定义 MySQL 用户名和密码 MYSQL_USER="your_username" MYSQL_PASSWORD="your_password"# 定义备份目录和文件名 backup_dir="/path/to/backup/directory" backup_file="$backup_dir/backup-$(date +\%Y\%m\%d).sql"# 使用 mysqldump 备份数据库 mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD --all-databases > $backup_file# 压缩备份文件 gzip $backup_file在这种情况下,你需要将 your_username 和 your_password 替换为实际的 MySQL 用户名和密码,并确保脚本文件中的用户名和密码是安全的(不要将它们硬编码在脚本中,或者确保脚本文件有适当的权限来保护这些敏感信息)。
无论你选择哪种方式,都要确保用户名和密码的安全性,以防止未经授权的访问。
-
设置脚本权限:在终端中运行以下命令,以确保备份脚本具有执行权限:
chmod +x your_backup_script.sh -
设置定时任务:使用操作系统的定时任务工具来创建一个每日备份任务。对于Linux系统,通常使用cron来实现。运行以下命令来编辑当前用户的cron表:
crontab -e然后,添加以下行来每天执行备份脚本(假设备份脚本叫做your_backup_script.sh,并且每天备份在凌晨2点进行):
0 2 * * * /path/to/your_backup_script.sh -
保存并退出:保存cron表达式的修改并退出编辑器。
现在,你已经设置了一个每日定时任务,它会在指定时间自动运行备份脚本,将MySQL数据库备份到指定目录。确保定期检查备份文件,以确保备份正在按计划运行并且没有问题。
注意:mysqldump 命令中的 --user 和 --password 参数只需要提供数据库的用户名和密码,而不需要指定数据库的地址。这是因为在大多数情况下,mysqldump 命令会默认连接到本地 MySQL 服务器(即 localhost)。
如果你的 MySQL 数据库位于不同的主机上,或者你希望备份不同主机上的数据库,那么你需要通过 --host 参数来指定数据库的地址。例如:
mysqldump --host=your_database_host --user=your_username --password=your_password --all-databases > $backup_file
又或者你的端口不是默认的3306,可以通过–port来制定端口。例如:
mysqldump --host=your_database_host --port=your_database_port --user=your_username --password=your_password --all-databases > $backup_file
完整脚本如下:
#!/bin/bash# MySQL数据库连接参数
DB_HOST="your_database_host"
DB_PORT="your_database_port"
DB_USER="your_username"
DB_PASSWORD="your_password"# 备份目录和文件名
backup_dir="/path/to/backup/directory"
backup_file="$backup_dir/backup-$(date +\%Y\%m\%d).sql"# 使用mysqldump备份数据库
mysqldump --host=$DB_HOST --port=$DB_PORT --user=$DB_USER --password=$DB_PASSWORD --all-databases > $backup_file# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "数据库备份成功,文件保存在: $backup_file"
elseecho "数据库备份失败"
fi# 可选:压缩备份文件
gzip $backup_file
但还有种情况,如果你的 MySQL 服务器是运行在 Docker 容器中,备份操作会有一些差异。你需要在 Docker 环境中执行备份命令,以确保能够连接到容器内的 MySQL 服务器。以下是在 Docker 中备份 MySQL 数据库的一般步骤:
-
查找 MySQL 容器的名称或 ID:首先,你需要查找正在运行的 MySQL 容器的名称或 ID。你可以使用以下命令来列出正在运行的容器并查找 MySQL 容器:
docker ps查找包含 MySQL 服务的容器并记下其名称或 ID。
-
执行备份操作:使用以下命令在 MySQL 容器中执行备份操作。假设容器名称为 mysql-container:
docker exec mysql-container mysqldump -u your_username -pYourPassword --all-databases > /path/to/backup/directory/backup-$(date +\%Y\%m\%d).sql
完整脚本如下:
#!/bin/bash# 定义MySQL容器名称或ID
MYSQL_CONTAINER="mysql-container"# 定义MySQL数据库连接参数
MYSQL_USER="your_username"
MYSQL_PASSWORD="YourPassword"
MYSQL_HOST="localhost" # 如果MySQL容器在同一主机上,可以使用localhost# 定义备份目录
BACKUP_DIR="/path/to/backup/directory"# 获取当前日期作为备份文件名的一部分
CURRENT_DATE=$(date +\%Y\%m\%d)# 要备份的数据库列表,用空格分隔
DATABASES="database1 database2 database3"# 创建备份目录
mkdir -p $BACKUP_DIR# 循环备份每个数据库
for DB_NAME in $DATABASES
do# 生成备份文件名BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_${CURRENT_DATE}.sql"# 使用mysqldump备份数据库到指定文件docker exec $MYSQL_CONTAINER mysqldump -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME > $BACKUP_FILE# 检查备份是否成功if [ $? -eq 0 ]; thenecho "数据库 $DB_NAME 备份成功,文件保存在: $BACKUP_FILE"# 压缩备份文件为ZIP格式zip "$BACKUP_FILE.zip" $BACKUP_FILErm $BACKUP_FILE # 删除原始SQL备份文件echo "备份文件已压缩为 $BACKUP_FILE.zip"elseecho "数据库 $DB_NAME 备份失败"fi
done
注意机器上有没有安装zip命令,没有的话需要安装下
yum install zip
大致步骤就这些,可能运行的时候会报mysqldump 访问权限不足,或者用户操作数据库的权限不足等问题,这个自行解决哈
相关文章:
mysql 每日自动备份数据库
在 MySQL 中,你可以使用定时任务来每日自动备份数据库。通常,最常用的方法是使用操作系统的定时任务工具(如cron)来调度备份操作。以下是一些步骤来设置每日定时备份MySQL数据库: 创建备份脚本:首先&#x…...
【计算机网络】图解路由器(二)
本系列包含: 图解路由器(一)图解路由器(二) 图解路由器(二) 21、什么是静态路由?22、什么是动态路由?23、动态路由有哪些类型?24、什么是 RIP ?2…...
流媒体及直播相关知识
文章目录 前言一、流媒体1、基本概念2、流式传输3、流媒体技术原理4、流媒体传输模式5、H.264 流媒体传输系统框架 二、直播1、直播中使用的流媒体协议2、直播的模块划分3、视频直播流程①、推流到服务器②、服务器流分发 前言 本文主要讲解流媒体及其直播相关知识,…...
数据治理-数据资产估值
数据生命周期大多数阶段涉及成本。数据只有使用时才有价值,使用时数据还产生与风险相关的成本。因此,当使用数据的经济效益超过了上述成本时,就会显现其价值。 其他的度量价值的方式包括: 替换成本。数据替换或恢复的成本。包括组…...
点云从入门到精通技术详解100篇-机载 LiDAR 点云滤波及分类
目录 前言 国内外研究现状 点云滤波研究现状 点云分类研究现状...
【SLAM】 前端-视觉里程计之相对位姿估计
【SLAM】 前端-视觉里程计之相对位姿估计 1.相对位姿估计 在前端视觉里程计中,相对位姿估计是指通过视觉传感器(例如相机)捕捉的图像信息,来估计相机相对于先前位置的位姿(位置和姿态)变化。这种估计通常…...
git format-patch打补丁
git format-patch HEAD^ 这个命令会产生从倒数第二个提交 HEAD^ 到最后提交 HEAD 之间所有提交的差异,并生成一个包含这些差异的补丁文件。这是一个包含详细步骤的例子: 第一步,创建一个新的 git 仓库并进行一些提交。这些提交是我们稍后会生…...
大数据Flink(八十三):SQL语法的DML:With、SELECT WHERE、SELECT DISTINCT 子句
文章目录 SQL语法的DML:With、SELECT & WHERE、SELECT DISTINCT 子句 一、DML:With 子句...
C++:list
目录 List的模拟实现 List节点类 List链表结构 List迭代器类 结构 T& operator*(); T& operator->(); Self& operator(); Self operator(int); Self& operator--(); Self& operator--(int); bool operator!(const Self& l); bool oper…...
【C++】搜索二叉树底层实现
目录 一,概念 二,实现分析 1. 插入 (1.)非递归版本 (2.)递归版本 2. 打印搜索二叉树 3.查找函数 (1.)非递归版本 (2.)递归版本 4. 删除函数&#x…...
C8051F020 SMBus一直处于busy状态解决办法
当SMBus总线处于busy状态切且无法自动释放时,SMB0CN寄存器的第7位一直为 1,总线没有释放。 SMBus总线释放超时的一个纠错机制,它允许SMBus状态机在 SDA 和 SCL 信号线同为高电平超过 10个SMBus时钟源周期后判断总线为释放状态。 如果总线释放…...
Activiz 9.2 for Linux Crack
Activiz 9.2 在 C#、.Net 和 Unity 软件中为您的 3D 内容释放可视化工具包的强大功能。 ActiViz 允许您轻松地将 3D 可视化集成到您的应用程序中。 ActiViz 功能 用 C# 封装的 3D 可视化软件系统 允许在 .NET 环境中快速开发可投入生产的交互式3D 应用程序 支持窗口演示基础 (…...
数据结构 - 链表
线性表的链式存储结构 概念 将线性表 L (a0, a1, … , an-1)中各元素分布在存储器的不同存储块,成为结点,通过地址或指针建立元素之间的联系。 结点的 data 域存放数据元素 ai ,而 next 域是一个指针,指向 ai 的直接后继 ai1 …...
Android 12 Bluetooth源码分析蓝牙配对
本文主要是列出一些蓝牙配对重要的类和方法/函数,遇到相关问题时方便查找添加log排查。 蓝牙扫描列表页面:packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java点击其中一个设备会调用:onPrefere…...
Python异步编程并发执行爬虫任务,用回调函数解析响应
一、问题:当发送API请求,读写数据库任务较重时,程序运行效率急剧下降。 异步技术是Python编程中对提升性能非常重要的一项技术。在实际应用,经常面临对外发送网络请求,调用外部接口,或者不断更新数据库或文…...
React组件化开发
1.组件的定义方式 函数组件Functional Component类组件Class Component 2.类组件 export class Profile extends Component {render() {console.log(this.context);return (<div>Profile</div>)} } 组件的名称是大写字符开头(无论类组件还是函数组件…...
LuatOS-SOC接口文档(air780E)--crypto - 加解密和hash函数
crypto.md5(str) 计算md5值 参数 传入值类型 解释 string 需要计算的字符串 返回值 返回值类型 解释 string 计算得出的md5值的hex字符串 例子 -- 计算字符串"abc"的md5 log.info("md5", crypto.md5("abc"))crypto.hmac_md5(str, k…...
自动化测试的定位及一些思考
大家对自动化的理解,首先是想到Web UI自动化,这就为什么我一说自动化,公司一般就会有很多人反对,因为自动化的成本实在太高了,其实自动化是分为三个层面的(UI层自动化、接口自动化、单元测试)&a…...
展会动态 | 迪捷软件邀您参加2023世界智能网联汽车大会
*9月18日之前注册的观众免收门票费* 由北京市人民政府、工业和信息化部、公安部、交通运输部和中国科学技术协会联合主办的2023世界智能网联汽车大会将于9月21日-24日在北京中国国际展览中心(顺义馆)举行。 论坛背景 本届展会以“聚智成势 协同向新——…...
jenkins自动化部署springboot、gitee项目
服务器需要安装jdk11、maven、gitee 1. jenkins安装 # yum源 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo # 公钥 sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key # 安装 yum install jenkins如果yum源报…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
