# MySQL自动备份

# mysqldump

mysqldump -uroot -p123456 -h127.0.0.1  -P3306  --databases eladmin > backup.sql
1

# run.bat

需要提前配置mysql环境变量

@setlocal enabledelayedexpansion
@echo off&color 0a 
:: 设置CMD显示的编码格式为UTF-8("防止中文乱码")
chcp 65001
echo start...
echo %date%
:: 需要根据时间格式做具体调整 如:周三 27/07/2022
set year=%date:~9,4%
set month=%date:~6,2%
set day=%date:~3,2%
set user=root
set password=123456
set port=3306
set host=127.0.0.1
set databases=space space_workflow halodb
set targetFolder=F:\db\space
if not exist %targetFolder% md %targetFolder%
::以日期为文件名
echo %year%-%month%-%day%
echo %targetFolder%
(for %%a in (%databases%) do ( 
   echo %%a
   set dbName=%%a
   ::echo !dbName!
   mysqldump -u!user! -p!password! -h!host!  -P!port!  --databases !dbName! > !targetFolder!\!year!-!month!-!day!-!dbName!.sql 
))

::mysqldump -u%user% -p%password% -h%host%  -P%port%  --databases %databases% > %targetFolder%\%year%-%month%-%day%.sql 
echo end...

timeout /nobreak /t 5
exit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# schtasks

#创建任务
schtasks /create /tn "backup-eladmin" /tr F:\db\backup-eladmin.bat /sc DAILY /st 12:00
schtasks /create /tn "backup-space" /tr F:\db\backup-space.bat /sc DAILY /st 12:00

#查看任务下次执行时间
schtasks /query /tn backup-eladmin
schtasks /query /tn backup-space

#删除创建的任务 
schtasks /delete /tn backup-eladmin
schtasks /delete /tn backup-space

1
2
3
4
5
6
7
8
9
10
11
12

# 导入

mysql -uroot  -P3306 -p123456 eladmin< ./2022-07-27.sql
1
最后更新于: 2022-09-27 09:35:23