python远程备份mysql_python3把服务器备份mysql数据库下载到本地
# -*- coding:utf-8 -*-
# @Time : 2020-07-29
# @Author : Dingjs
#DB基本信息
import os
import time
import datetime
import glob
import shutil
"""
Python3.7 来执行mysql数据备份操作
自动保持7天的数据
备份的sql文件名精确到时分秒,这样即使一天备份多次,也不会进行覆盖
"""
#数据库基本信息设定
DB_HOST = '输入数据库地址'
DB_USER = '输入数据库账号'
DB_USER_PASSWORD = '输入数据库密码'
DB_PORT = '端口号3306'
#多库备份
#写法一:把需要备份的库名写到txt文件中,然后读取txt文件内的数据
#DB_NAME = '/backup/dbnames.txt'
#写法二:通过执行sql语句来匹配下载的库
# sqlStr1 = "show databases like 'iot%'"
#单库备份
DB_NAME = 'iot_test'
#备份路径
BACKUP_PATH = '../conn_DB/sql_path/'
#设置编码格式
DB_CharSet = 'utf8'
#创建datatime,作为备份文件名称
DATETIME = time.strftime('%Y%m%d')
#这里主要是做.sql文件的日期区分
DT_time = time.strftime("%Y%m%d_%H%M%S")
TODAYBACKUPPATH = BACKUP_PATH + DATETIME
#保留7天的备份文件
print ('del folder seven days ago')
folders = glob.glob('/backup/dbbackup/*')
today = datetime.datetime.now()
for item in folders:
try:
foldername = os.path.split(item)[1]
day = datetime.datetime.strptime(foldername, "%Y%m%d")
diff = today - day
if diff.days >= 7:
shutil.rmtree(item)
except:
pass
print("creating backup folder")
#查看备份文件夹是否存在,不存在,则创建
if not os.path.exists(TODAYBACKUPPATH):
os.makedirs(TODAYBACKUPPATH)
# Code for checking if you want to take single database backup or assinged multiple backups in DB_NAME.
#开始备份文件
print ("checking for databases names file.")
if os.path.exists(DB_NAME):
file1 = open(DB_NAME)
multi = 1
print("Databases file found...")
print ("Starting backup of all dbs listed in file " + DB_NAME)
else:
print ("Databases file not found...")
print ("Starting backup of database " + DB_NAME)
multi = 0
# Starting actual database backup process.
if multi:
in_file = open(DB_NAME,"r")
flength = len(in_file.readlines())
in_file.close()
p = 1
dbfile = open(DB_NAME,"r")
while p <= flength:
# 从数据库读取文件
db = dbfile.readline()
db = db[:-1]
#在python中通过cmd执行mysqldump备份语句
# dumpcmd = "mysqldump -u " + DB_USER + "-h"+DB_HOST + " -p" + DB_USER_PASSWORD + " " + db + " > " + TODAYBACKUPPATH + "/" + db + ".sql"
# os.system(dumpcmd)
#在python中通过cmd来执行mysqldump命令的另一种写法
os.system( "mysqldump -h%s -u%s -p%s %s --default_character-set=%s > %s/%s_%s.sql" % (
DB_HOST, DB_USER, DB_USER_PASSWORD, db, DB_CharSet, TODAYBACKUPPATH, DT_time, db))
p = p + 1
dbfile.close()
else:
db = DB_NAME
# dumpcmd = "mysqldump -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + TODAYBACKUPPATH + "/" + db + ".sql"
# os.system(dumpcmd)
os.system("mysqldump -h%s -u%s -p%s %s --default_character-set=%s > %s/%s_%s.sql" % (
DB_HOST, DB_USER, DB_USER_PASSWORD, db, DB_CharSet, TODAYBACKUPPATH,DT_time, db))
#结束后,打印执行状态信息
print ("Backup script completed")
print("Your backups has been created in '" + TODAYBACKUPPATH + "' directory")
python远程备份mysql_python3把服务器备份mysql数据库下载到本地相关推荐
- javaweb实现mysql备份功能_java web 实现mysql 数据库备份、恢复
如题,由于项目需要,研究并实现了java web的 mysql数据库的备份.下载.恢复功能,中间遇到一些问题,耗费了不少时间,下面让我一一道来: 背景介绍: window 7系统 mysql 5.7 ...
- mysql nb3 备份_通过Navicat进行Mysql数据库自动备份与还原
Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_person,表中有两条数据. 1.点击"自动运行&q ...
- 基于宝塔面板的三种数据库备份方式(服务器备份,云备份,本地备份)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 基于宝塔面板的三种数据库备份方式(服务器备份,云备份,本地备份) 前言 前天也就是10月20号的时候,去河南郑州参加了第八届IHCN中 ...
- 如何查看服务器数据库管理系统,怎么查看服务器的mysql数据库
怎么查看服务器的mysql数据库 内容精选 换一换 PostgreSQL支持逻辑备份.您可使用pg_dump逻辑备份功能,导出备份文件,再通过psql导入到RDS中,实现将PostgreSQL的数据导 ...
- 阿里云ECS服务器搭建Mysql数据库
阿里云ECS服务器搭建Mysql数据库 一.服务器系统: Alibaba Cloud Linux 3.2104 LTS 64位 二.服务器文件夹创建 [说明]:由于服务器为新申请,故服务器为空白服务器 ...
- linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库
之前因为项目需要,所以自己在linux服务器上安装了mysql数据库,但是自己在安装mysql数据库的时候也是遇到了很多的问题,所以特此在本博客中介绍一下如何在linux服务器上进行mysql数据库的 ...
- android与mysql数据库同步_android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?...
通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...
- CENTOS 7 踢用户_CentOS服务器及MySQL数据库性能测试-乐搏软件测试
这期小编和大家分享使用Sysbench,进行CentOS服务器及MySQL数据库的性能测试. Sysbench是一个跨平台的基准测试工具. 基准测试是对数据库的性能指标进行定量的.可复现的.可对比的测 ...
- 《微信小程序案例10》后端服务器与mysql数据库与前端微信小程序
一.服务器配置mysql 1.下载数据库模块,直接在egg服务器里面下载:npm i --save egg-mysql 2.vscode打开服务器文件夹config里面的plugin.js ,开启刚刚 ...
最新文章
- 点星 (。*)表示任意数量的字符(不包括换行符)
- 解决Eclipse中SVN版本比较中文乱码问题
- linux下搭建go环境--问题记录
- C语言究竟是一门怎样的语言?
- SQL存储过程与自定义函数实例
- C# 操作World生成报告
- 未来互联网最稀缺的能力是什么?
- asp.net 2.0中页的生存周期(Lifecycle)和动态控件[转]
- 个人信息安全现状及保护方法
- java中curr是什么意思_curr.是什么意思
- 20个面向前端开发人员的文档和指南(第4号)
- srs直播 java开发,使用 SRS/OBS/VLC 快速搭建直播服务系统
- 【设计模式】Java设计模式 - 享元模式
- 什么是BFC?如何触发BFC
- matalb曲线图只有点没有线_身高170公分,体重170磅的女孩,身材健硕,没有一点多余赘肉...
- 车辆停放收费管理系统c语言,毕业论文 停车场收费管理系统
- Yann LeCun在线访谈:我的深度学习之路
- C语言 兔子繁殖问题
- PS无法完成请求,暂存盘已满的解决办法
- 符号引用和直接引用--java