我使用的客户端系统是(192.168.YY.YY),我在mysql-proxy中提到的后端地址是(192.168.XX.XX) .I使用以下LuaScript
来记录查询using mysql-proxy
function read_query( packet )
b={}
j=1
if string.byte(packet) == proxy.COM_QUERY then
local query = string.sub(packet, 2)
table.insert(b,query)
print(b[j])
end
end
上面的脚本记录了后端服务器(192.168.XX.XX)的mysql的以下结果:
select @@version_comment limit 1
SELECT DATABASE()
select @@version_comment limit 1
select USER()
SELECT DATABASE()
show tables
我需要将这些记录的查询存储到客户端系统(192.168.YY.YY)的数据库中。如何将记录的查询存储到客户端系统的数据库中。有人请帮我解决这个问题。谢谢!!
答案 0 :(得分:1)
我不知道如何从mysql代理脚本打开数据库连接,但你可以很容易地创建一个单独的Lua脚本,该脚本使用luasocket在udp端口上侦听它写入文件的日志消息, yor代理脚本写入该端口,然后不存在同时查询导致日志文件写入的竞争条件的风险。相同的Lua脚本可以在不同的端口上侦听命令以获取日志文件。或者通过http访问文件。您甚至可以通过http post消息添加日志消息,然后甚至不需要单独的Lua脚本来进行日志文件管理。我不认为需要数据库。
要在客户端计算机上写入文件,您的脚本将使用Lua的io.open
函数和file:write
方法。阅读这些内容。正如我在答案的开头附近所说的那样,正如我认为您在其中一条评论中暗示的那样,如果同时发生多个查询,您可能必须协调写入日志,但您应该首先尝试简单的方法,它可能没问题。< / p>