其实导出就是利用了mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql这个命令,根据实际的应用场景我这需要每天自动备份,我这写了一个脚本。
@echo off
title 数据库备份 :: @置于语句前,则该条语句不会回响,无视 echo on
:: 主机名
set host=127.0.0.1
:: 用户名
set username=root
:: 数据库名
set db_name=xxx
:: 密码
set password=123456
:: 备份时间
set backup_date=%date:~0,4%年%date:~5,2%月%date:~8,2%日
:: 作为备份文件名
set "backup_data_code=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2%"
:: 数组长度
set "x=0"
set list=xxx
md E:\DB_backup\%backup_date%
# 这里设置备份的存储路径
set save_path="E:\DB_backup\%backup_date%"
echo =============================MySql数据库的连接信息================================
echo 主机名:%host%
echo 用户名:%username%
echo 备份日期: %backup_date%
echo 要备份MySql数据库名:%list%
echo ==================================================================================
echo.
echo.
echo.
echo 正在使用 mysqldump 对指定的 MySQL 进行备份
echo ==================================================================================
@echo on
@(for %%i in (%list%) do (
mysqldump --default-character-set=utf8mb4 -u%username% -p%password% -h%host% %%i --hex-blob > %save_path%\%%i_%backup_data_code%.sql
))
echo 删除过期文件,这里是超过30天就删除
forfiles /p E:\DB_backup\ /s /m * /d -1 /c "cmd /c rmdir /q /s @path
@pause
该有注解的地方都写清楚了,根据自己的信息改一下就可以用了。