pythom导出mysql指定binlog文件

要求

要求本地有py环境和全局环境变量

先测试直接执行binlog命令执行命令

Windows 本地直接执行命令

python 复制代码
# E:\output>E:\phpstudy_pro\Extensions\MySQL5.7.26\bin\mysqlbinlog binglog文件地址
# --no-defaults 不限制编码
# -h mysql链接地址
# -u mysql 链接名称
# -p mysql 密码
# -P3306 mysql 端口
# --read-from-remote-server  --raw  mysqlbinlog 命令的一个选项,它指示 mysqlbinlog 从远程 MySQL 服务器读取二进制日志文件进行解析。
# binlog.000003 文件地址



#命令如下

E:\output>E:\phpstudy_pro\Extensions\MySQL5.7.26\bin\mysqlbinlog --no-defaults -h 127.0.0.1 -u root -p -P3306 --read-from-remote-server --raw binlog.000003

代码

python 复制代码
import subprocess

def download_binlogs(host, user, password, port, start_binlog, end_binlog, output_path):
    try:
        for binlog_number in range(start_binlog, end_binlog + 1):
            binlog_filename = f"binlog.{str(binlog_number).zfill(6)}"
            output_filename = f"{output_path}/binlog_{binlog_number}.sql"

            # 构建命令
            command = [
                'E:/phpstudy_pro/Extensions/MySQL5.7.26/bin/mysqlbinlog.exe',
                '--no-defaults',
                '-h', host,
                '-u', user,
                '-p' + password,
                '-P' + str(port),
                '--read-from-remote-server',
                '--raw',
                binlog_filename
            ]

            # 运行命令并将输出重定向到文件
            with open(output_filename, 'w') as output_file:
                subprocess.run(command, stdout=output_file)
                output_file.flush()  # 刷新缓冲区

            print(f"Binlog日志文件 '{binlog_filename}' 下载成功!保存为 '{output_filename}'")

    except Exception as e:
        print(f"下载失败:{e}")

if __name__ == "__main__":
    # 替换以下信息为实际的Polardb连接信息和binlog文件范围
    polardb_host = "127.0.0.1"
    polardb_user = "root"
    polardb_password = "root"
    polardb_port = 3306
    start_binlog_number = 1
    end_binlog_number = 3
    output_directory = "E:/output"  # 替换为你想要保存文件的目录

    download_binlogs(polardb_host, polardb_user, polardb_password, polardb_port, start_binlog_number, end_binlog_number, output_directory)

python执行

复制代码
python .\binlog.py
相关推荐
郝学胜-神的一滴2 分钟前
张量维度操控心法:从reshape到升维降维,吃透PyTorch形状操作的底层逻辑
人工智能·pytorch·python·深度学习·程序人生·算法·机器学习
ruiang5 分钟前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
王者鳜錸7 分钟前
闲鱼商品自动发布实战:基于Java实现API轮询与批量上架
java·开发语言·python·商品自动发布
ZzzZZzzzZZZzzzz…8 分钟前
MySQL备份还原方法1---mysqldump
linux·运维·数据库·mysql·还原备份
源码之家8 分钟前
计算机毕业设计:汽车数据可视化分析系统 Django框架 Scrapy爬虫 可视化 数据分析 大数据 大模型 机器学习(建议收藏)✅
大数据·python·信息可视化·flask·汽车·课程设计·美食
asdzx679 分钟前
使用 Python 将图片转换为 PDF (含合并)
前端·python·pdf
源码之家13 分钟前
计算机毕业设计:基于Python的二手车数据分析可视化系统 Flask框架 可视化 时间序列预测算法 逻辑回归 requests 爬虫 大数据(建议收藏)✅
大数据·hadoop·python·算法·数据分析·flask·课程设计
Wyawsl14 分钟前
MySQL高可用集群
数据库·mysql
尽兴-15 分钟前
MySQL 与 Elasticsearch 数据一致性保障的四大主流方案
数据库·mysql·elasticsearch
飞Link18 分钟前
深入剖析 langchain_huggingface 核心 API 与本地化大模型部署实战
开发语言·python·langchain