如何在 python 中编写脚本以使用 MySQL 代理跟踪查询。我试图获取有关此的信息,但找不到任何有关 python 的信息,请帮助我在 python 中编写脚本以使用 mysql 代理进行查询。我想澄清一下mysql代理的工作和使用。
2 回答
有mysql-proxy-python。它不能针对我的 Ubuntu 提供的 mysql-proxy 版本进行编译。
像这样配置 mysql-proxy-python 之后./configure --prefix=/var/tmp/mysqlproxy --with-python=python2.7 --with-gnu-ld --with-mysql-proxy-src=/var/tmp/mysql-proxy-0.8.5/
,我需要在 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 代理跟踪查询。
您可以从https://gist.github.com/simonw/1039751下载脚本,并将其保存到文件 monitor.lua 然后运行代理:
mysql-proxy --proxy-lua-script=monitor.lua
然后您可以编写 python 脚本并分析文件中的所有代理查询。
默认情况下,脚本输出将刷新到 mysql.log 中,或者您可以直接在 LUA 脚本 (monitor.lua) 中更改它。
Mysql-proxy 只支持 LUA 脚本来构建插件,所以如果你想影响一些特定的查询,你需要了解 lua,或者找到最适合你确切情况的脚本。