这里写目录标题
- 1.数据库全表原始数据.ibd文件备份为.sql文件
- 1.1理解date含义
- 2.备份原始表中部分表 --改进版
- 2.1 backPartTable表内容
- 2.2备份运行
- 2.3实操代码
- 3.如何将备份的文件进行压缩处理??执行压缩文件
1.数据库全表原始数据.ibd文件备份为.sql文件
中心思想找到源文件(.ibd)备份到目的地成.sql文件
@echo off
rem 设置 MySQL 参数
rem mysql安装地址
set mysql_home=C:\Program Files\MySQL\MySQL Server 8.0
rem mysql存放表 .ibd 文件 其实就是mysql表存放位置
set mysql_data=C:\ProgramData\MySQL\MySQL Server 8.0\Data
rem mysql数据库连接地址
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=123456
rem 需要备份的数据库名字
set database_name=book
rem 备份到目的地目录
set backup_dir=E:\testBackData
rem 备份对应导出文件名
set backup_name=%Date:~0,4%%Date:~5,2%%Date:~8,2%
set date=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%
rem 更改命令提示符代码页为 UTF-8 中文
chcp 65001 > nul
echo 开始备份时间:%date%-%time%
rem 进入 MySQL 安装目录
cd %mysql_home%\bin
rem 使用 mysqldump 命令备份数据库
.\mysqldump.exe -h%dbhost% -P%dbport% -u %dbuser% -p%dbpass% %database_name% > %backup_dir%\%backup_name%.sql
rem 复制 .ibd 文件到备份目的地目录
xcopy /s %mysql_data%\%database_name% %backup_dir%
rem 备份结束提示
echo Backup completed.
echo 备份完成时间:%date%-%time%
rem 提示
pause
1.1理解date含义
set date=%Date:~0,4%%Date:~5,2%%Date:~8,2%
这行代码是用来定义一个名为 date 的变量,其值是当前日期的年、月、日的组合。
%Date% 是一个系统预定义的环境变量,它存储了当前日期的字符串值,格式通常是 "yyyy/MM/dd" (例如:2023/08/23)。
:~0,4 表示从 %Date% 字符串的第0个位置开始截取,截取长度为4个字符,即提取出年份的部分(例如:2023)。
:~5,2 表示从 %Date% 字符串的第5个位置开始截取,截取长度为2个字符,即提取出月份的部分(例如:08)。
:~8,2 表示从 %Date% 字符串的第8个位置开始截取,截取长度为2个字符,即提取出日期的部分(例如:23)。
最后,通过将这三个截取结果进行拼接,就得到了一个形如 "yyyyMMdd" 的日期字符串,例如:20230823。这个字符串被赋值给变量 date 作为备份文件名的一部分
2.备份原始表中部分表 --改进版
1.比如备份 test1和test2 表
2.加载部分表
后续更新
2.1 backPartTable表内容
2.2备份运行
2.3实操代码
@echo off
rem 设置 MySQL 参数
rem mysql安装地址
set mysql_home=C:\Program Files\MySQL\MySQL Server 8.0
rem mysql存放表 .ibd 文件
set mysql_data=C:\ProgramData\MySQL\MySQL Server 8.0\Data
rem mysql数据库连接地址
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=123456
rem 需要备份的数据库名字
set database_name=book
rem 备份到目的地目录
set backup_dir=E:\testBackData
rem 备份对应导出文件名
set backup_name=%Date:~0,4%%Date:~5,2%%Date:~8,2%
set date=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%
rem 更改命令提示符代码页为 UTF-8
chcp 65001 > nul
echo 开始备份时间:%date%-%time%
rem 进入 MySQL 安装目录
cd %mysql_home%\bin
rem 使用 mysqldump 命令备份数据库
rem 备份部分数据表 每个表名独占一行
set backuptable_list_file=E:\testBackData\backPartTable.txt
for /f "tokens=* delims=" %%i in ('type %backuptable_list_file%') do (
echo backup %%i ...
mysqldump.exe -h%dbhost% -P%dbport% -u%dbuser% -p%dbpass% %database_name% %%i > %backup_dir%\%%i.sql
)
rem 备份结束提示
echo Backup completed.
echo 备份完成时间:%date%-%time%
rem 提示
pause