【脚本分享】- Windows下利用Powershell进行MySQL数据库备份

article/2025/9/18 5:36:29

 关注「WeiyiGeek」公众号

将我设为「特别关注」,每天带你玩转网络安全运维、应用开发、物联网IOT学习!

f8b46d6a1fd33efc465640ede6554844.png


测试环境: Server 2008 R2

所需软件:

- MySQLdump.exe  - msvcp120.dll  x64/x86- msvcr120.dll  x64/x86- powershell- 7z

设置PowerShell策略:

PS C:\Users\Administrator> Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine执行策略更改
执行策略可以防止您执行不信任的脚本。更改执行策略可能会使您面临 about_Execution_Policies
帮助主题中所述的安全风险。是否要更改执行策略?
[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): Y

注册 mysqldump 依赖的dll

regsvr32 msvcr120.dll
regsvr32 msvcp120.dll

数据库相关信息查看:

# 1.版本
SELECT @@version;# 2.指定数据库的表与表数据行统计查看
select table_name,table_rows from information_schema.tables where TABLE_SCHEMA = 'authcenter' order by table_rows desc;

备份脚本:

# ------------------------------- #
# Author:WeiyiGeek                #
# PS: 数据库备份 & 应用备份         #
# Create: 2020年6月11日 21:34:40   #
# ------------------------------- #    # ----------------------------------------------------------------- #
# 全局变量
$GD=Get-Date
$TIME=$GD.ToString('yyyy-MM-dd_HHmmss')
$DATE=$GD.ToString('yyyy-MM-dd')
$global:BACKUP_SQLFILE = ""# MySQL 备份程序
$MYSQL_DUMP="D:\mysql\bin\mysqldump.exe"# 压缩SQL文件
$7Zfile = "C:\7-Zip\7z.exe"
$7ZPASS = "WwW.WeiyiGeek.top"# 指定备份文件存放目录
$BACKUP_DIR = "D:/mysql/SQL-${DATE}"
$BACKUP_7ZDIR = "D:/mysql/7Z-${DATE}"# FTP 上传
$FTP_IP = "192.168.12.31"
$FTP_PORT = "21212"
$FTP_USER = "User"
$FTP_PASS = "Pass"# ----------------------------------------------------------------- ## 验证备份文件夹是否创建
$FLAG=Test-Path -Path "$BACKUP_DIR"
if (!$FLAG ){#New-Item -ItemType Directory -Path $BACKUP_DIR/ -Forcemkdir "$BACKUP_DIR"
} # MySQL数据库备份链接
function dumpMysql {param ([string] $APP_HOST="",[string] $APP_DBNAME="",[string] $APP_DBU="",[string] $APP_DBP="",[int] $APP_PORT=3306)if([String]::IsNullOrEmpty($APP_HOST) -or [String]::IsNullOrEmpty($APP_DBNAME) -or [String]::IsNullOrEmpty($APP_DBU) -or [String]::IsNullOrEmpty($APP_DBP)){Write-Host "# 备份 $APP_DBNAME 数据库错误 "  -ForegroundColor red[Environment]::Exit(127)} else {Write-Host "# 正在备份 $APP_DBNAME 数据库 "  -ForegroundColor Green$global:BACKUP_SQLFILE = "${APP_DBNAME}_${TIME}.sql"Invoke-Expression "${MYSQL_DUMP} -h $APP_HOST -P $APP_PORT --default-character-set=UTF8 -u$APP_DBU -p$APP_DBP -B --databases $APP_DBNAME --hex-blob --result-file=$BACKUP_DIR/$BACKUP_SQLFILE"}
}# 7Z 压缩SQL文件
function Compress7Z {# 判断压缩备份目录是否存在$flag = Test-Path -Path "${BACKUP_7ZDIR}"if (!$flag){Write-Host "正在建立 $Dstdir 备份目录 " -ForegroundColor GreenNew-Item -ItemType Directory -Path $BACKUP_7ZDIR -Force}Start-Process -FilePath $7Zfile -ArgumentList "a -p${7ZPASS} ${BACKUP_7ZDIR}\${BACKUP_SQLFILE}.7z $BACKUP_DIR\*_${TIME}.sql" -WindowStyle hidden
}# 备份文件上传方式
function uploadBack {param ([string] $FLAG="")# ftp 方式if ( $FLAG -eq "ftp" ){"open ${FTP_IP} ${FTP_PORT}" | Out-File ftp.tmp"${FTP_USER}" | Out-File -Append ftp.tmp"${FTP_PASS}" | Out-File -Append ftp.tmp"bin" | Out-File -Append ftp.tmp"mkdir ${DATE}" | Out-File -Append ftp.tmp"cd ${DATE}" | Out-File -Append ftp.tmp"put ${BACKUP_7ZDIR}\${BACKUP_SQLFILE}.7z" | Out-File -Append ftp.tmp"quit" | Out-File -Append ftp.tmpStart-Process ftp -ArgumentList "-i -s:ftp.tmp"Remove-Item -Path ftp.tmp}
}# 调用MysqlDump函数执行下载(指定数据库拉取)
dumpMysql -APP_HOST 127.0.0.1 -APP_PORT 8066 -APP_DBNAME "AuthCenterschema" -APP_DBU "root" -APP_DBP "123456"
# 调用压缩
Compress7Z
# 调用上传
uploadBack -FLAG "ftp"#Write-Host "# 正在输出备份数据库路径: $BACKUP_DIR"  -ForegroundColor Green
#Get-ChildItem $BACKUP_DIR\*.sql 
#Write-Host "# 正在输出压缩文件备份数据库路径: ${BACKUP_7ZDIR}"  -ForegroundColor Green
#Get-ChildItem ${BACKUP_7ZDIR}\*.7zexit

定时任务设置:

# 每周5的一点进行备份同步(不管用户是否登陆)
schtasks /create /TN mysql-backup  /SC WEEKLY  /D FRI /ST 01:00 /TR "powershell.exe d:\mysql\backup.ps1" /NP

1eaad58451cb00811f532e1c2ce84214.png

备份测试:

9aaf0901df47373f5d48beeea1ba4c9c.png


欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】或者个人公众号【WeiyiGeek】联系我。

更多文章来源于【WeiyiGeek Blog 个人博客 - 为了能到远方,脚下的每一步都不能少 】

个人主页: 【 https://weiyigeek.top】

博客地址: 【 https://blog.weiyigeek.top 】

专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注,转个发,留个言】(人间六大情),这将对我的肯定,谢谢!。

  • echo  "【点个赞】,动动你那粗壮的拇指或者芊芊玉手,亲!"

  • printf("%s", "【投个币】,万水千山总是情,投个硬币行不行,亲!")

  • fmt.Printf("【收个藏】,阅后即焚不吃灰,亲!")  

  • console.info("【转个发】,让更多的志同道合的朋友一起学习交流,亲!")

  • System.out.println("【关个注】,后续浏览查看不迷路哟,亲!")

  • cout << "【留个言】,文章写得好不好、有没有错误,一定要留言哟,亲! " << endl;

20b1650b17407eabda87d53ebc8bf0c4.png 往期相关文章ef00b44786830b681f1266c456e48607.png

1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)

2.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(下)

2.Jenkins入门基础使用与Gitlab持续化集成部署

8.Jenkins进阶之流水线pipeline基础使用实践(1)

9.Jenkins进阶之流水线pipeline基础使用实践(2)

11.Jenkins进阶之kubernetes集群搭建分布式架构基础环境

13.Jenkins进阶之自定义工作节点jnlp容器模板(附DockerFile)更新相关软件下载

12ea5198761b2ce464c2f40fc71ea98c.png

b22ca651ddb63694df5e01ea59b126a2.gif

更多网络安全、系统运维、应用开发、全栈文章,尽在【个人博客 - https://blog.weiyigeek.top】站点,谢谢支持!


http://chatgpt.dhexx.cn/article/VaXSi9qZ.shtml

相关文章

数据库备份脚本大全

备份脚本六个注意点 在写脚本前我这里按照个人习惯大概总结了以下六点&#xff0c;感兴趣的可以继续看看&#xff0c;不感兴趣的直接跳过就好。 1、首先要注意的一点就是 shell 环境是 bash 还是 sh ,需要在你的脚本开头中注明。 #!/bin/bash 2、其次就是数据库环境变量需要申明…

C#实现MySQL数据库数据的备份与恢复

这几天一直在做学校的C#期末项目&#xff0c;其中有一个功能就是数据的备份与恢复&#xff0c;在百度了一番之后&#xff0c;只找到了适用于SQL Server的备份SQL语句 BACKUP DATABASE database_name TO DISK physical_device_name [ WITH { DIFFERENTIAL | COPY_ONLY | {…

Linux Mysql自动备份

1.配置自动备份环境 1.1 创建文件见放脚本文件和备份数据 # 创建/data/backup/mysqlmkdir -p /data/backup/mysqlcd /data/backup# 创建mysql_backup.sh的脚本并且填充数据vi mysql_backup.sh# vi mysql_backup.sh进行编辑和修改 1.2 创建 备份数据的语句 mysql_backup.sh…

wamp 备份 mysql数据库_wamp:MySql数据库备份还原(mysqldump)

mysql数据库备份和恢复命令在mysql安装目录中的bin目录下&#xff0c;例如wamp安装在e:\wamp目录下&#xff0c;备份目录就在e:\wamp\mysql\mysql5.0.51b\bin目录中&#xff0c;备份和恢复操作在DOS命令符状态下完成&#xff1a; 1、备份数据库&#xff1a; mysqldump -u 用户名…

MySQL 20 MySQL 数据库备份

8.2 数据库备份 不用我多说&#xff0c;都知道 为什么需要数据库备份。因为 你在增删改查的时候&#xff0c;肯定会 出现 误操。&#xff08;导致一些数据修改错误&#xff0c;或者一些数据被不小心干掉&#xff01;&#xff09; 保证重要的数据不丢失为了让我们 对数据操作的…

MySQL数据库的定时备份实践

1.背景介绍 也许你会发现本站建站时间久远&#xff0c;但是本站的各类访问量总是很低&#xff0c;这大概是有两个方面的原因&#xff0c;其一是因为本站升级2.0后&#xff0c;所有的文章访问数据并未同步&#xff08;不仅仅是文章&#xff0c;所有的数据均为同步&#xff0c;比…

Python NumPy计算欧氏距离(Euclidean Distance)

欧氏距离定义&#xff1a; 欧氏距离&#xff08; Euclidean distance&#xff09;是一个通常采用的距离定义&#xff0c;它是在m维空间中两个点之间的真实距离。 在二维和三维空间中的欧式距离的就是两点之间的距离&#xff0c;二维的公式是&#xff1a; begin{equation} d sq…

Euclidean division

In arithmetic, Euclidean division – or division with remainder – is the process of dividing one integer (the dividend) by another (the divisor), in a way that produces an integer quotient and a natural number remainder strictly smaller than the absolute …

PRN(20201012):Improved updating of Euclidean distance maps and Voronoi diagrams

[*] Lau B , Sprunk C , Burgard W . Improved updating of Euclidean distance maps and Voronoi diagrams[C]// IEEE/RSJ International Conference on Intelligent Robots & Systems. IEEE, 2010. 本文对[*]中的Occupancy Map to Euclidean Distance Maps算法进行python…

java余弦距离_使用TensorFlow实现余弦距离/欧氏距离(Euclideandistance)以及Attention矩阵的计算...

最近在使用tensorflow完成句子相似度建模等任务时常常会用到各种距离的计算&#xff0c;而且有很多论文提出了Attention机制&#xff0c;所以这里就介绍一下如何使用tensorflow实现上述各种功能。 这里首先假定我们的输入是两个四维的Tensor&#xff0c;然后我们需要计算的是其…

点云检测--欧式聚类Euclidean Cluster

1.版本要求 版本: >PCL1.3 2.简介 欧式聚类是点云聚类的一种重要方法&#xff0c;利用点云中点与点之间的欧式距离进行聚类&#xff0c;当点与点之间的欧式距离小于设定的阈值则视为一类。欧式聚类是车辆前方障碍物检测的重要方法。 3.数据 本例中使用的点云数据&#…

Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning

作者&#xff1a; 19届 lz 日期&#xff1a;2022-3-2 论文&#xff1a;《Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MA V Planning》 整个系统功能分为两部分&#xff1a; 将传入的传感器数据合并到 TSDF 中&#xff08;第 IV 节&#xff09;&…

3D点云处理:点云聚类--FEC: Fast Euclidean Clustering for Point Cloud Segmentation

文章目录 聚类结果一、论文内容1.1 Ground Surface Removal1.2 Fast Euclidean Clustering题外&#xff1a;欧几里得聚类Fast Euclidean ClusteringFEC利用具有点索引顺序的逐点方案的浅显理解 1.3 源码中问题说明 二、参考 聚类结果 原始代码中采用的是pcl中的搜索方式&#…

euclidean loss

个人感觉相当于L2范式开平方,也相当于针对两个向量的欧氏距离开平方 说的更直白点就是两个向量对应位置相减得到每个位置的差,然后把每个位置的差开平方再相加 前向传播cpp代码: template <typename Dtype> void EuclideanLossLayer<Dtype>::Forward_cpu(const vec…

Euclidean, Manhattan, hop-count distance 区别

欧式距离&#xff08;Euclidean Distance&#xff09; 二维空间的公式 其中&#xff0c; 为点 与点 之间的欧氏距离&#xff1b; 为点 到原点的欧氏距离。 曼哈顿距离&#xff08;Manhattan Distance &#xff09; 两点在南北方向上的距离加上在东西方向上的距离&#xff0c;…

扩展Euclidean算法求乘法逆原理详解与算法实现

【利用扩展Euclidean算法求乘法逆】 1. Equipment &#xff08;1&#xff09; operating system version &#xff1a;WIN 10 &#xff08;2&#xff09; CPU instruction set: x 64 &#xff08;3&#xff09; software &#xff1a;Visual Studio 2019 2. process Probl…

NEO4J-相似度算法04-欧几里得距离算法(euclidean)应用场景简介

说明&#xff1a;使用neo4j算法库时需引入跟neo4j数据库对应的算法库插件或自定义算法库 1.简介 欧几里德距离算法原理是计算n维坐标系中点与点之间地距离&#xff0c;如在三维坐标系中点A(p1,p2,p3),点B(q1,q2,q3),两个点之间得距离则为 &#xff1a;, 如果在n维坐标系中&…

欧几里德算法、拓展欧几里德、中国剩余定理

目录 欧几里德算法&#xff08;Euclidean algorithm&#xff09;&#xff08;辗转相除法&#xff09;拓展欧几里德算法中国剩余定理作业1&#xff1a;作业2&#xff1a; 欧几里德算法&#xff08;Euclidean algorithm&#xff09;&#xff08;辗转相除法&#xff09; 欧几里德…

logit回归模型_一文读懂条件Logistic回归

在医学研究中,为了控制一些重要的混杂因素,经常会把病例和对照按年龄,性别等条件进行配对,形成多个匹配组。各匹配组的病例数和对照人数是任意的,比如一个病例和若干个对照匹配即1:1,在医学上称作“1:1病历对照研究”,常见还有1:M(M <=3),即1个病例和1或2或3个对照…

目标检测-定位蒸馏:logit蒸馏与feature蒸馏之争

定位蒸馏 &#xff08;LD, CVPR 2022&#xff09; 先上我们文章和代码&#xff1a; 论文标题&#xff1a; Localization Distillation for Dense Object Detection 论文地址&#xff1a; https://arxiv.org/abs/2102.12252 代码地址1&#xff1a; https://github.com/HikariTJU…