hhyo / Archery

SQL 审核查询平台
https://archerydms.com
Apache License 2.0
6k stars 1.68k forks source link

[ bug ] archey调用binlog工具的bug #1120

Closed michael-liumh closed 2 years ago

michael-liumh commented 3 years ago

在提交 issue 前,请查阅以下资源,请先进行搜索来保证没有类似的 issue。 文档 | FAQ

重现步骤

  1. 打开binlog工具页面,选择必要参数后,点击“获取SQL”,如下图 image
  2. 到后台用ps命令ps -ef | grep binlog2sql获取命令行参数,如下图 image
  3. 可以看到archery调用binlog2sql时,--sql-type参数的值是加了引号的--sql-type 'INSERT UPDATE DELETE'
  4. 参照ps -ef | grep binlog2sql获取到的执行命令,手动执行一次,如下图: image
  5. 可以发现,执行完,确实没有结果输出,但如果去掉--sql-type参数值的引号后再执行,会发现,是能获取到结果的,如下图 image

期待结果和实际结果

期待结果:能获取binlog解析后的结果

实际结果:不能获取binlog解析后的结果

### 错误日志 无,截图见上述重现步骤 ### 版本信息 应用版本/分支:Release v1.8.1 部署方式:手工部署
michael-liumh commented 3 years ago

解决方案: 1、编辑 /opt/archery/src/plugins/binlog2sql/binlog2sql.py,修改第 43 行,将 self.sql_type = [t.upper() for t in sql_type] if sql_type else [] 修改为 self.sql_type = [t.upper() for t in sql_type.split()] if sql_type else []; 2、编辑 /opt/archery/src/plugins/binlog2sql/binlog2sql_util.py,修改第 43 行,将 nargs='*', 这个参数删掉

LeoQuote commented 3 years ago

请直接提pr 吧

michael-liumh commented 3 years ago

请直接提pr 吧

这个是 docker 里内置的 binlog2sql 工具的兼容问题,我这是直接改工具的代码,直接拉线上代码找不到 binlog2sql.py 这个文件

LeoQuote commented 3 years ago

https://github.com/danfengcao/binlog2sql/blob/master/binlog2sql/binlog2sql.py 是这个项目吧, 去这里提, 然后在 archery 这里更新版本号

stale[bot] commented 3 years ago

你已经很久没有回复这个issue了,如果没有进一步的信息的话, 会作为不活跃issue关闭, 感谢你对本项目的贡献。 This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

hhyo commented 3 years ago

那边项目不更新了,这个应该是增加shlex.quote转义引入的bug,可以做个识别处理

hhyo commented 2 years ago

已处理