1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python文件夹自动备份_Python自动备份MySQL数据库---Windows环境下

python文件夹自动备份_Python自动备份MySQL数据库---Windows环境下

时间:2020-06-07 19:51:57

相关推荐

python文件夹自动备份_Python自动备份MySQL数据库---Windows环境下

我们知道MySQL是自带数据库备份功能的,但是这个功能在Windows下很受限制。如果你完整备份整个数据库,就需要还原整个数据库,而这时你会发现有多么无助,可能你还原了50%,突然报错,你又得重新还原,而且时间巨长。如果单表备份,你不仅需要把每个表的名字写一遍,新建的表还需要反复修改备份命令。所以,我想到一个Python逐表备份的方法,这样即使出什么问题,你只需要还原指定的表就可以了。

下面请看具体实施方法:

import pymysql

import os

import datetime

# 获取当前时间

t = datetime.datetime.now()

# 获取当前日期

dt = t.date()

dt = datetime.datetime.strftime(dt,"%Y%m%d")

path = 'E:/Mysqlbackup/Test_%s/' % dt

# 判断要创建的文件夹是否已经存在

a = os.path.exists(path)

if a == False:

# 如果文件夹不存在则创建

os.mkdir(path)

conn = pymysql.connect(host=localhost,user='Admin',passwd='pwd',db='Test',port=3306,charset='utf8mb4')

cur = conn.cursor()

# 获取指定数据库中所有表的信息

sql = "show table status where Engine is not null "

cur.execute(sql)

result = cur.fetchall()

# 编写命令行

cmd1 = "mysqldump -u root -ppwd %s --default-character-set=gbk > %s%s.sql"

# 如果要压缩备份好的表,安装WinRAR,并配置好环境变量

cmd2 = "WinRAR m -r -ep1 %s%s.rar %s%s.sql"

cmd3 = "@echo off"

cmd4 = "@echo on"

os.system(cmd3)

for i in result:

# 做个备份数据库中的表

os.system(cmd1 % (i[0], path, i[0]))

# 将备份好的数据库表进行压缩

os.system(cmd2 % (path, i[0], path, i[0]))

os.system(cmd4)

cur.close()

conn.close()

上面的Python脚本写好以后,你在Windows环境下的服务器上,设置好计划任务,这样就可以每天看到新鲜出炉的备份文件了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。