首页 > 数据库技术 > 详细

使用Windows任务计划程序和Python备份Mysql数据库

时间:2019-10-09 17:59:04      阅读:114      评论:0      收藏:0      [点我收藏+]

 


目标:每日定时自动备份Mysql数据库


 方案:

1、安装Python:

  使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/release/python-371/,安装过程略过。

2、python脚本:

  

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from datetime import date,datetime
import os
import zipfile
import re

def search_file(path, pattern):
    result_file_list = []
    with os.scandir(path) as it:
        for entry in it:
            if not entry.name.startswith(.) and entry.is_file():
                if re.fullmatch(pattern, entry.name):
                    result_file_list.append(entry.name)

    return result_file_list

# 开始备份
print("开始备份数据库...")

# 获取当前时间
cur_date = date.today().strftime("%Y%m%d")
# 数据库IP
host = "localhost"
# 数据库名称
db_name = "db"
# 用户名
db_user_name = "root"
# 密码
db_user_pwd = "password"
# 备份目录
backup_dir = "E:\\DataBaseBackup\\db"
# 备份目录不存在则创建
if not os.path.exists(backup_dir):
    os.makedirs(backup_dir)
# 备份文件名
file_name = cur_date + ".sql"
# 压缩文件名
zip_file_name = cur_date + ".zip"

#切换到备份目录
os.chdir(backup_dir)
# 备份数据库命令
run_backup = "D:\\MySql\\mysql-5.7.21-winx64\\bin\\mysqldump.exe --host=" + host + " --user=" + db_user_name + " --password=" + db_user_pwd + " --protocol=tcp --port=3306 --default-character-set=utf8 " + db_name + " > " + file_name
print(run_backup)
# 执行备份
os.system(run_backup)

#文件是否存在
file_exist = os.path.exists(file_name)
if file_exist:
    # 压缩文件
    with zipfile.ZipFile(zip_file_name,"w",zipfile.ZIP_DEFLATED) as myzip:
        myzip.write(file_name)
        
# 删除文件
os.remove(file_name)

# 备份结束
print("备份数据库成功")

# 清理30天前的过期文件
max_days = 30
old_files = search_file(backup_dir, r"\d{8}.zip")
for old_file in old_files:
    str_date = old_file.split(.)[0]
    dt = datetime.strptime(str_date,"%Y%m%d")
    days = (datetime.today() - dt).days
    if days > max_days:
        os.remove(old_file)

 

  说明:使用mysql的mysqldump备份数据库(可配置为环境变量),备份的文件将是以当前日期为名称的zip文件,备份文件只保留30天。

3、配置windows任务计划:

  3.1、打开“计算机管理”,找到“任务计划程序”,点击“创建任务”

  技术分享图片  

 

  3.2、配置任务信息:

   技术分享图片

 

   3.3、新建触发器

  技术分享图片

  技术分享图片

 

   3.4、新建操作

   技术分享图片

   技术分享图片

 

   3.5、确认保存

   3.6、运行测试

  技术分享图片

 

  Over!!Bye Bye

使用Windows任务计划程序和Python备份Mysql数据库

原文:https://www.cnblogs.com/yong-sir/p/11642071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!