cmd备份数据库:
mysqldump -u username -p database_name > path\to\file_name.sql
mysqldump -u username -p=password database_name > file_name.sql
备份某表
mysqldump -u username -p my_database my_table > my_table_backup.sql
还原备份的数据库文件
mysql -u username -p database_name < C:\path\to\file_name.sql -- 可以恢复到其他数据库中
恢复某表
mysql -u username -p my_database my_table < my_table_backup.sql
-- 从 MySQL 数据库备份中单独恢复某个表需要手动提取所需的 SQL 语句
批处理备份数据库:
@echo off
rem 设置数据库相关信息
set DB_USER=my_username
set DB_PASS=my_password
set DB_NAME=my_database_name
set BACKUP_DIR=C:\path\to\backup\directory
rem 创建备份目录(如果不存在)
if not exist "%BACKUP_DIR%" (
mkdir "%BACKUP_DIR%"
)
rem 设置日期格式
set DATE=%date:~0,4%-%date:~5,2%-%date:~8,2%
rem 执行备份
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" -u %DB_USER% -p%DB_PASS% %DB_NAME% > "%BACKUP_DIR%\%DB_NAME%_%DATE%.sql"
echo Backup completed for database %DB_NAME% on %DATE%.
pause
批处理备份某表:
@echo off
rem 设置数据库相关信息
set DB_USER=my_username
set DB_PASS=my_password
set DB_NAME=my_database_name
set TABLE_NAME=my_table_name
set BACKUP_DIR=C:\path\to\backup\directory
rem 创建备份目录(如果不存在)
if not exist "%BACKUP_DIR%" (
mkdir "%BACKUP_DIR%"
)
rem 设置日期格式
set DATE=%date:~0,4%-%date:~5,2%-%date:~8,2%
rem 执行备份
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" -u %DB_USER% -p%DB_PASS% %DB_NAME% %TABLE_NAME% > "%BACKUP_DIR%\%TABLE_NAME%_%DATE%.sql"
echo Backup completed for table %TABLE_NAME% in database %DB_NAME% on %DATE%.
pause
批处理恢复数据库文件:
@echo off
rem 设置数据库相关信息
set DB_USER=my_username
set DB_PASS=my_password
set DB_NAME=my_database_name
set BACKUP_FILE=C:\path\to\backup\directory\my_table_name_YYYY-MM-DD.sql
rem 执行恢复
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -u %DB_USER% -p%DB_PASS% %DB_NAME% < "%BACKUP_FILE%"
echo Restore completed for file %BACKUP_FILE% into database %DB_NAME%.
pause
批处理恢复数据库某表文件:
@echo off
rem 设置数据库相关信息
set DB_USER=my_username
set DB_PASS=my_password
set DB_NAME=my_database_name
set TABLE_NAME=my_table_name
set BACKUP_FILE=C:\path\to\backup\directory\my_table_name_backup.sql
rem 执行恢复
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -u %DB_USER% -p%DB_PASS% %DB_NAME% < "%BACKUP_FILE%"
echo Restore completed for table %TABLE_NAME% from %BACKUP_FILE% into database %DB_NAME%.
pause
批处理备份文件夹:
@echo off
setlocal enabledelayedexpansion
set SOURCE=C:\Users\thinkpad\Desktop\SQL
set TARGET=D:\Backup
if not exist "%TARGET%" mkdir "%TARGET%"
echo Backing up files...
xcopy "%SOURCE%" "%TARGET%" /E /I /Y /C
echo Backup completed.
Pause
@echo off:关闭命令回显,使脚本运行时不显示命令行。
·setlocal enabledelayedexpansion:启用延迟变量扩展,以便在循环中使用变量。
·set SOURCE=C:\Documents:设置源文件夹路径。
·set TARGET=D:\Backup:设置目标文件夹路径。
·if not exist "%TARGET%" mkdir "%TARGET%":如果目标文件夹不存在,则创建它。
·xcopy "%SOURCE%" "%TARGET%" /E /I /Y /C:使用 xcopy 命令复制文件夹。参数说明:
/E:复制所有子文件夹,即使它们为空。
/I:如果目标文件夹不存在,则创建它。
/Y:覆盖现有文件而不提示。
/C:继续复制,即使遇到错误。
·echo Backup completed.:输出备份完成的消息。
·pause:暂停脚本运行,直到用户按下任意键。
如果源文件夹路径最后是一个文件就备份上一级的整个文件夹
python备份文件夹
import shutil
import os
# 定义源文件夹和目标文件夹
source_folder = r"C:\Users\thinkpad\Desktop\sql"
target_folder = r"D:\Backup"
# 确保目标文件夹存在
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 构建目标文件夹的完整路径
target_folder = os.path.join(target_folder, os.path.basename(source_folder))
# 复制文件夹
print("Backing up folder...")
shutil.copytree(source_folder, target_folder, dirs_exist_ok=True)
# 输出完成消息
print("Backup completed.")
python备份单个文件
import shutil
import os
# 定义源文件和目标文件夹
source_file = r"C:\Users\thinkpad\Desktop\aa.txt"
target_folder = r"D:\Backup"
# 确保目标文件夹存在
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 构建目标文件路径
target_file = os.path.join(target_folder, os.path.basename(source_file))
# 复制文件
print("Backing up file...")
shutil.copy2(source_file, target_file)
# 输出完成消息
print("Backup completed.")
第一段代码使用 shutil.copytree 函数来递归复制整个文件夹。copytree 会复制所有的文件和子文件夹,并且可以处理目标文件夹已经存在的情况(通过 dirs_exist_ok=True 参数)
第二段代码使用 shutil.copy2 函数来复制单个文件。copy2 会复制文件的元数据