实现mysql数据库备份并压缩上传

本文介绍了一个用于自动备份MySQL数据库的批处理脚本。该脚本能够实现数据库的备份、压缩及上传至远程FTP服务器的功能。用户只需修改服务器地址、用户名、密码及文件路径等基本信息即可运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步新建.bat后缀的文件,复制以下内容到文件中,并修改对应的服务器地址、用户名、密码,和需要
上传的文件地址即可,修改完成后双击bat文件即可开始备份压缩上传

注:多数据库备份,统一使用root用户导出,文件起始部分内容为需要配置的内容。
非MySql数据库的自动备份只需要修改mysqldump口令为其他数据库口令(如Oracle的Exp)。
循环时只校验db_length长度,所以db_length长度必须小于或等于db数组的长度。

echo off

rem  mysqldump命令位置
set mysql_dir=C:\Program Files\MySQL\MySQL Server 8.0\bin\
rem jar.exe命令位置
set winrar_dir=E:\mygonju\kfgonju\jdk\jdk\bin\
rem sql生成位置
set bak_dir=C:\Users\dong\Desktop\
rem mysql ip地址和端口
set host=127.0.0.1
set port=3306

rem 打印目录信息
echo ---------------------------------
echo mysql backup at %date% %time%
echo mysql_dir=%mysql_dir%
echo winrar_dir=%winrar_dir%
echo bak_dir=%bak_dir%
echo host=%host%:%port%
echo ---------------------------------

rem 获取时间
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set hour=%time:~0,2%
set hour=%hour: =0%
set minutes=%time:~3,2%
set seconds=%time:~6,2%
set fulldate=%year%%month%%day%%hour%%minutes%%seconds%

 rem 设置ftp服务器登录参数
@set ftp_server=101.132.134.210 21
@set ftp_user=root
@set ftp_password=...

rem 定义数据库
set db_length=1
set db[0]=seanew162

rem 开始数据库备份
set db_index=0
:LoopStart
if %db_index% equ %db_length% goto :eof
set db_curr=0
for /f "usebackq delims==. tokens=1-3" %%i in (`set db[%db_index%]`) do (
    set db_curr=%%j
)
rem [%db_curr%] 数据库开始备份
echo database [%db_curr%] begin backup.
rem 跳转到mysqldump命令目录下
cd C:\Program Files\MySQL\MySQL Server 8.0\bin\
rem 执行mysqldump 命令
mysqldump --no-defaults -h%host% -P%port% -uroot -pcmsroot %db_curr% > %bak_dir%%db_curr%.sql
rem 执行压缩命令
%winrar_dir%jar cf %bak_dir%seanew162bf.rar %bak_dir%%db_curr%.sql
rem 删除生成的sql文件
del %bak_dir%%db_curr%.sql
rem [%db_curr%] 数据库已经备份了
echo database [%db_curr%] already backup.
set /a db_index=%db_index% + 1
goto LoopStart

@echo on
rem 通过FTP上传到远处服务器
echo open %ftp_server%>ftp.txt
echo user>>ftp.txt
echo %ftp_user%>>ftp.txt
echo %ftp_password%>>ftp.txt
echo cd /usr>>ftp.txt
echo put %bak_dir%MySql_Bak_Auto_11.rar>>ftp.txt
echo bye>>ftp.txt
ftp -n -s:ftp.txt

del ftp.txt

echo ---------------------------------
echo mysql auto backup end
echo ---------------------------------
@echo off

本文参考博客点击跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值