编写python3脚本,实现查询mysql中所有库并进行备份,删除过期备份

如何使用Python备份MySQL数据库? 保护 MySQL 数据库的完整性和可恢复性对于降低与数据丢失和损坏相关的风险至关重要。Python是一种多功能编程语言,提供了无数的库和技术,用于与MySQL数据库的无缝交互并完成高效的备份过程。本文深入探讨了使用 Python 创建 MySQL 数据库备份的三种不同方法,包括子进程模块的使用、mysqldump 命令与 pymysql 库的集成,以及利用 MySQL 连接器/Python 库的强大功能。通过实际示例,我们将深入研究这些技术的复杂性。 阅读详情

以下是一个Python3脚本,可以实现查询MySQL数据库中所有库,并进行备份,然后删除7天前的备份。


import os
import time
import datetime
import pymysql


# MySQL数据库连接信息
host = 'localhost'
port = 3306
user = 'root'
dbwd = '12345678'


# 备份文件保存路径
backup_path = '/backup/'


# 获取当前时间
today = datetime.date.today()


# 连接MySQL数据库
conn = pymysql.connect(host=host, port=port, user=user, password=dbwd)


# 获取所有数据库名
cursor = conn.cursor()
cursor.execute('SHOW DATABASES')
databases = cursor.fetchall()


# 备份所有数据库
for database in databases:
    database = database[0]
    if database == 'information_schema' or database == 'mysql' or database == 'performance_schema':
        continue
    filename = backup_path + database + '_' + str(today) + '.sql'
    os.system('mysqldump -h ' + host + ' -u ' + user + ' -p' + password + ' ' + database + ' > ' + filename)


# 删除7天前的备份
for file in os.listdir(backup_path):
    if file.endswith('.sql'):
        file_path = os.path.join(backup_path, file)
        file_time = datetime.datetime.fromtimestamp(os.path.getctime(file_path)).date()
        if (today - file_time).days > 7:
            os.remove(file_path)


# 关闭数据库连接
cursor.close()
conn.close()
 


说明:


1. 首先,需要安装pymysql模块,可以使用pip3 install pymysql命令进行安装。
2. 在脚本中,需要设置MySQL数据库连接信息、备份文件保存路径等参数。
3. 使用SHOW DATABASES语句获取所有数据库名。
4. 使用mysqldump命令备份所有数据库。
5. 使用os.listdir()函数获取备份文件夹中的所有文件,使用os.path.getctime()函数获取文件创建时间,判断是否需要删除备份文件。
6. 使用centos7系统,需要安装python3,具体命令如下:

[root@os-240 ~]#   yum install python3
[root@os-240 ~]#  pip3 install pymysql

[root@os-240 ~]#  pip3 install setuptools_rust

[root@os-240 ~]#  pip3 install transformers==3.4
[root@os-240 ~]#  pip3 install cryptography

注意:在实际使用中,需要根据实际情况进行修改和调整。

Xtrabackup Mysql5.7 python 备份与恢复 实验环境Centos7.5 Python3.6 版本 mysql 5.7 阅读详情

相关推荐

从零掌握AI编程助手:Codex实战入门与高效提示词编写指南

你是不是经常遇到这样的场景:想批量重命名几百个文件,却要手动写正则表达式;需要定期备份数据库,但总是忘记设置定时任务;或者想从网页抓取一些数据,却要花半天时间研究爬虫库的API?这些重复、繁琐的脚本编写工作,正是Codex这类AI编程助手最擅长解决的痛点。 但很多人对Codex的理解还停留在“一个能写代码的AI”这种模糊印象,以为它只能生成一些简单的“Hello World”片段。实际上,从最新的发展来看,Codex的能力边界已经发生了质变。它不再仅仅是代码补全工具,而是正在进化为一个能够理解复杂项目上下文

weixin_30443731的博客 401

写一个数据库备份的python脚本

下面是一个简单的数据库备份的 Python 脚本示例,使用的是 MySQL 数据库: import os importtime # 数据库信息 DB_HOST = 'localhost' DB_USER = 'root' DB_USER_PASSWORD = 'root' DB_NAME = 'database_name' BACKUP_PATH = '/path/to/backup/folde...

weixin_42602726的博客 285

Ubuntu 14.04 + Bacula 构建高可靠LAMP备份体系

备份系统本质是数据可恢复性保障机制,其核心原理在于元数据可追溯、存储可验证、策略可审计。在遗留LAMP环境中,传统rsync或mysqldump方案缺乏作业级生命周期管理与一致性校验能力,难以满足生产级RTO/RPO要求。Bacula凭借客户端-服务器架构、内置MySQL插件支持及PostgreSQL元数据库强事务保障,成为Ubuntu 14.04等稳定旧版系统上构建企业级备份流水线的优选技术栈。它特别适用于PHP 5.5+MySQL 5.5组合的政务、教育及中小SaaS系统,支撑每小时增量、每日全量、30

weixin_34060299的博客 438

python创建数据库并对表结构备份_数据备份 及 Python 操作 Mysql

一 MySQL数据备份#1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。#2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。#3. 导出表: 将表导入到文本文件中。一、使用mysqldump实现逻辑备份#语法:#mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件....

weixin_39889642的博客 440

企业微信数据备份实战:基于API与混合云架构的自动化方案

数据备份是保障企业数字资产安全与业务连续性的基础技术实践,其核心原理在于通过定期或实时复制关键数据到独立存储介质,防止因误操作、系统故障或安全事件导致的数据丢失。在混合办公与SaaS应用普及的今天,企业级即时通讯工具(如企业微信)中沉淀了大量结构化与非结构化业务数据,其备份需求具有权限复杂、API分散、文件体量大等特点,传统的本地备份或单一云服务方案往往难以兼顾成本、效率与可控性。本文聚焦于企业微信这一典型场景,通过解析其通讯录、微盘、审批等核心模块的API接口,结合MongoDB文档数据库与云对象存储(如

weixin_33882452的博客 343

Seafile私有云部署:Ubuntu 12.04+MySQL+Python深度实践指南

私有云存储系统是企业数据主权与合规协作的核心基础设施,其本质是通过可控服务架构实现文件同步、权限治理与审计追溯。Seafile作为成熟开源方案,依赖Python后端逻辑、MySQL元数据管理及轻量Linux环境协同运行,技术价值在于块级同步保障大文件完整性、分层服务设计提升容错能力、本地化部署满足等保与GDPR要求。典型应用场景包括设计工作室素材库、律所案卷协同、医疗影像归档等对元数据敏感、需自主运维的垂直领域。本文聚焦Ubuntu 12.04这一经典LTS环境,深入解析Python 2.7生态兼容性、My

weixin_34214500的博客 374

Python批量删除mysql中千万级大量数据

场景描述线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多。运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前...

python爬虫人工智能大数据 1189

VPS上MySQL/MariaDB安全加固实战指南

MySQL和MariaDB作为Linux服务器最常用的关系型数据库,在VPS环境中默认配置存在严重安全隐患,如空密码root账户、bind-address=0.0.0.0暴露端口、匿名用户未清理等。其核心原理在于服务监听机制与权限模型的设计初衷面向本地开发,而非公网生产环境。技术价值体现在通过配置文件(my.cnf)调优、最小权限账户体系、系统防火墙(ufw)与云安全组协同、SSH隧道访问等手段,构建纵深防御体系。典型应用场景包括WordPress等Web应用部署、远程数据库管理及自动化运维。本文聚焦VPS

weixin_34014555的博客 424

Python 与 MySQL 数据库交互:从表中删除数据深度解析

本文介绍了如何使用Python从MySQL表中删除数据,包括环境配置、核心步骤和SQL语句说明。重点讲解了三种删除方式:带条件的精确删除、删除所有行(慎用)和清空表并重置计数器(慎用)。提供了Python连接MySQL数据库的代码示例,以及创建游标对象的方法。文中强调了删除操作的风险,建议始终使用WHERE子句确保精确删除,并注意SQL注入防护、事务管理和资源清理等最佳实践。最后提醒删除操作前务必确认意图,避免数据丢失。

weixin_42107409的博客 1239

运维开发笔试高频考点全拆解:从Linux到MySQL索引的实战复盘

在技术岗位的校招笔试中,运维开发是覆盖面极广的方向,既考察Linux系统基础、TCP/IP网络原理,也涉及MySQL索引优化、Shell与Python脚本能力。这类笔试的核心不在于死记命令或语法,而是检验候选人是否具备分层排查的思维和用代码解决实际运维问题的工程素养。从进程状态到HTTP请求链路,从慢SQL定位到日志统计分析,每一类题都对应着生产环境中的真实场景。理解排查顺序、掌握索引失效的典型原因、能写出高效处理大文件的脚本,才是得分关键。本文基于京东等一线大厂校招笔试题型,复盘高频考点与典型真题,帮助正

weixin_33827590的博客 528

使用 python 备份 mysql 数据库

上述代码将备份数据导出到`/var/lib/mysql-files/`目录下,这个目录需要存在且有适当的权限。你也可以指定不同的目录作为备份位置。- 请将`your_username`, `your_password`, `your_database`替换为实际的数据库用户名、密码和数据库名。1. 安装MySQL连接器(如`mysql-connector-python`或`pymysql`)'user': 'your_username', # 你的MySQL用户名。# 执行SQL导出命令。

wjianwei666的专栏 682

MySQL Binlog自动清理与手动删除实战指南

在数据库运维中,二进制日志(Binlog)是实现主从复制、数据恢复和变更数据捕获(CDC)的核心组件。其工作原理是记录所有数据变更操作,为数据同步和故障恢复提供基础。合理管理Binlog的技术价值在于保障系统稳定性、控制存储成本并满足合规要求。在实际应用场景中,DBA需要根据高可用架构、数据恢复需求和开发测试环境的不同,配置差异化的保留策略。本文聚焦于Binlog的“保质期”管理,深入解析expire_logs_days与binlog_expire_logs_seconds等关键参数,并提供主从复制协调下的

weixin_34396103的博客 401

Python 爬虫项目:MySQL 定时备份爬虫数据表防止数据丢失

网络爬虫在长期运行过程中会持续积累海量采集数据,数据表损坏、服务器异常、误操作删除、程序报错等问题,都有可能造成已采集数据永久性丢失。对于依赖爬虫数据开展业务分析、舆情监测、数据统计的场景而言,数据安全与灾备能力是保障系统稳定运行的核心环节。MySQL 作为爬虫项目中应用最广泛的关系型数据库,具备成熟的数据备份与恢复机制,结合 Python 脚本与系统定时任务,可实现爬虫数据表全自动、周期性备份,从技术层面规避数据丢失风险。

2503_91057718的博客 1049

Ubuntu 16.04下Logrotate+S3cmd实现MySQL日志异地归档

日志归档是运维可靠性的基石,其核心在于确保日志在本地轮转后能及时、完整、可验证地持久化至远端。其原理依赖于日志切分的原子性触发与上传动作的强耦合,避免cron调度导致的时间漂移和状态丢失。技术价值体现在故障回溯能力提升、磁盘空间风险可控、审计合规性增强。典型应用场景包括老旧生产系统(如Ubuntu 16.04+MySQL 5.7)的长期日志存证、金融/IoT等对日志完整性有强校验要求的环境。本文聚焦Logrotate postrotate钩子与S3cmd协同机制,解决Ubuntu 16.04环境下路径隔离、

weixin_34195546的博客 433

数据库运维不再头疼!自动化管理工具让你轻松掌控数据

但随着人工智能和自动化技术的兴起,数据库管理逐渐走向智能化,许多**自动化数据库管理工具**已经让曾经的“体力活”变成轻松的“一键操作”。今天,我们就来聊聊数据库自动化管理的现状,看看有哪些新技术值得关注,并实际演示一些 Python 代码,让你在实践中理解它的强大之处。

Echo_Wish 272

python自动备份mysql数据库,并删除七天前文件

python自动备份mysql数据库,并删除七天前文件。 省去每天手动备份 删除 空出的时间摸鱼不香吗? 备份时间可自己设置 备份文件夹可自己设置 删除文件时间范围可自己设置

Apache Doris数据备份实战指南:三分钟掌握企业级数据保护方案

Apache Doris作为一款高性能的实时分析数据库,在企业级应用中承担着核心数据分析任务。数据安全与业务连续性是企业运维的生命线,如何高效、可靠地保护Doris中的数据资产,成为技术决策者和运维工程师必须面对的关键挑战。本文将为您提供一套完整的Apache Doris数据备份解决方案,从业务痛点出发,通过实战演示、架构解析和最佳实践,帮助您在5分钟内构建企业级数据保护体系。 ## 一、企业数

gitblog_00914的博客 919

从智能手机到汽车电子:聊聊IPC-9702/9704A标准如何帮我们搞定不同场景下的PCB可靠性设计

本文探讨了IPC-9702/9704A标准在智能手机和汽车电子等不同场景下的PCB可靠性设计应用。通过分析消费电子、汽车电子和工业设备中的应力特征,详细解读了IPC标准在应变识别和测试方法论中的核心价值,并提供了具体的轻量化设计策略和全生命周期验证方案,帮助工程师提升PCB的长期可靠性。

weixin_30693683的博客 280

金山办公运维开发笔试:脚本/数据库/缓存/排查/容器全解析

现代运维开发的核心,在于用自动化脚本与工程化思维解决复杂系统问题。从基础的Shell文本处理、Python脚本健壮性设计,到MySQL索引优化与Redis缓存穿透、击穿、雪崩的应对策略,再到网络故障排查、系统负载分析与容器化CI/CD链路,每一项都是保障服务稳定性的关键能力。这些技术不仅用于日常运维,更是互联网产品高可用架构的基石。理解原理、掌握排查思路、具备性能优化意识,才能应对真实业务场景中的挑战。本文围绕金山办公校招运维开发岗位的笔试第二部分,系统拆解高频题型、答题逻辑与备考重点,帮助求职者构建从脚本

weixin_34176694的博客 474

OpenWebUI联网搜索实战:如何用SearXNG让本地大模型获取实时信息(附百度/360配置)

本文详细介绍了如何通过部署开源元搜索引擎SearXNG,为本地运行的OpenWebUI大语言模型(如Qwen、Llama)配置联网搜索功能,解决其知识库过时的问题。文章重点讲解了SearXNG的Docker部署、集成国内搜索引擎(如百度、360)的配置方法,以及如何与OpenWebUI无缝对接,从而实现本地大模型获取实时、准确的中文信息,提升其实用性。

weixin_28835583的博客 1876

从零配置到稳定运行:A4988步进电机驱动模块的实战避坑指南

本文详细介绍了A4988步进电机驱动模块的配置与优化技巧,涵盖硬件连接、电流调节、微步设置及散热优化等关键环节。通过实战经验分享,帮助用户避开常见陷阱,实现步进电机的稳定运行,特别适合单片机开发者和3D打印机爱好者参考。

weixin_28452161的博客 168
下一篇: OpenSSL 1.1.1 生命周期结束
Mi_Coder
博客等级 码龄4年 6粉丝 9原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值