【发布时间】:2013-02-15 12:18:26
【问题描述】:
如何在 python 中编写脚本以使用 MySQL 代理跟踪查询。 我试图获取有关此的信息,但找不到任何有关 python 的信息,请帮助我在 python 中编写脚本以跟踪查询 mysql代理。我想澄清一下mysql代理的工作和使用。
【问题讨论】:
标签: python mysql mysql-proxy
如何在 python 中编写脚本以使用 MySQL 代理跟踪查询。 我试图获取有关此的信息,但找不到任何有关 python 的信息,请帮助我在 python 中编写脚本以跟踪查询 mysql代理。我想澄清一下mysql代理的工作和使用。
【问题讨论】:
标签: python mysql mysql-proxy
有mysql-proxy-python。它不能针对我的 Ubuntu 提供的 mysql-proxy 版本进行编译。
像./configure --prefix=/var/tmp/mysqlproxy --with-python=python2.7 --with-gnu-ld --with-mysql-proxy-src=/var/tmp/mysql-proxy-0.8.5/ 这样配置mysql-proxy-python 之后,我至少需要在config.h 中更改:
/* make sure the off_t is 32bit */
#ifndef _FILE_OFFSET_BITS
#define _FILE_OFFSET_BITS 32
#endif
#define HAVE_ULONG
然后我可以运行env PYTHONPATH=/var/tmp/mysql-proxy-python/lib/ mysql-proxy --plugin-dir=/var/tmp/mysqlproxy/lib/mysql-proxy/plugins --plugins=pyproxy --pyproxy-backend-addresses=127.0.1:3306 --pyproxy-python-script=/var/tmp/mysql-proxy-python/examples/rewrite.py。
在make 和make install 之后,我可以像mysql --host=127.1 --user=root --password=root --port 2046 mysql 这样连接到代理。请注意我通过netstat -tulpen 找到的端口。
【讨论】:
如何在 python 中编写脚本以使用 MySQL Proxy 跟踪查询。
你可以从https://gist.github.com/simonw/1039751下载脚本,保存到文件monitor.lua然后运行代理:
mysql-proxy --proxy-lua-script=monitor.lua
然后您可以编写 python 脚本并分析文件内的所有代理查询。
默认script的输出会被刷新到mysql.log中,或者你可以直接在LUA脚本(monitor.lua)中修改。
Mysql-proxy 只支持 LUA 脚本来构建插件,所以如果你想影响一些特定的查询你需要了解 lua,或者找到最适合你的具体情况的脚本。
【讨论】: