• 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

  • 相关阅读:
    外包干了2个月,技术退步明显.......
    哪些数据应该先治理
    数据库全栈工程师(DevDBOps)低首付、高回报,先就业后付款
    【Element-UI】Vue项目引入element-ui
    吴恩达机器学习系列课程笔记——第十四章:降维(Dimensionality Reduction)
    Flask框架:如何运用Ajax轮询动态绘图
    WinHex怎么增加数据
    前后端分离项目,vue+uni-app+php+mysql在线考试系统设计与实现(H5移动项目)
    unity自制循环匀速动画
    MVCC
  • 原文地址:https://blog.csdn.net/qq_27229113/article/details/134462793