• pythom导出mysql指定binlog文件


    要求

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

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

    Windows 本地直接执行命令

    1. # E:\output>E:\phpstudy_pro\Extensions\MySQL5.7.26\bin\mysqlbinlog binglog文件地址
    2. # --no-defaults 不限制编码
    3. # -h mysql链接地址
    4. # -u mysql 链接名称
    5. # -p mysql 密码
    6. # -P3306 mysql 端口
    7. # --read-from-remote-server --raw mysqlbinlog 命令的一个选项,它指示 mysqlbinlog 从远程 MySQL 服务器读取二进制日志文件进行解析。
    8. # binlog.000003 文件地址
    9. #命令如下
    10. 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

    代码

    1. import subprocess
    2. def download_binlogs(host, user, password, port, start_binlog, end_binlog, output_path):
    3. try:
    4. for binlog_number in range(start_binlog, end_binlog + 1):
    5. binlog_filename = f"binlog.{str(binlog_number).zfill(6)}"
    6. output_filename = f"{output_path}/binlog_{binlog_number}.sql"
    7. # 构建命令
    8. command = [
    9. 'E:/phpstudy_pro/Extensions/MySQL5.7.26/bin/mysqlbinlog.exe',
    10. '--no-defaults',
    11. '-h', host,
    12. '-u', user,
    13. '-p' + password,
    14. '-P' + str(port),
    15. '--read-from-remote-server',
    16. '--raw',
    17. binlog_filename
    18. ]
    19. # 运行命令并将输出重定向到文件
    20. with open(output_filename, 'w') as output_file:
    21. subprocess.run(command, stdout=output_file)
    22. output_file.flush() # 刷新缓冲区
    23. print(f"Binlog日志文件 '{binlog_filename}' 下载成功!保存为 '{output_filename}'")
    24. except Exception as e:
    25. print(f"下载失败:{e}")
    26. if __name__ == "__main__":
    27. # 替换以下信息为实际的Polardb连接信息和binlog文件范围
    28. polardb_host = "127.0.0.1"
    29. polardb_user = "root"
    30. polardb_password = "root"
    31. polardb_port = 3306
    32. start_binlog_number = 1
    33. end_binlog_number = 3
    34. output_directory = "E:/output" # 替换为你想要保存文件的目录
    35. download_binlogs(polardb_host, polardb_user, polardb_password, polardb_port, start_binlog_number, end_binlog_number, output_directory)

    python执行

    python .\binlog.py

  • 相关阅读:
    element table表格行列合并span-method,根据数据动态行列合并
    力扣.82删除链表中的重复元素(java语言实现)
    Linux中scp命令详解
    Prometheus 监控指南:如何可靠地记录数字时间序列数据
    5分钟了解LangChain的路由链
    JavaScript问题清单与经验
    Android ndk开发入门集锦一
    数据库备份
    使用CSS实现《声生不息》节目Logo
    (新)Spring Security如何实现跨域
  • 原文地址:https://blog.csdn.net/qq_27229113/article/details/134462793