是否有一套完整的mysql-proxy lua脚本文档?

jj3*_*j33 6 mysql-proxy

我正在玩mysql-proxy的脚本.我想要完成的是无关紧要的.然而,我发现,似乎有lua接口的元素没有记录.我所拥有的大"吸烟枪"就是disconnect_client()勾手.我无法在官方文档中的任何地方找到它,尽管它在管理界面解释中用于示例中.它也在示例文档中广泛使用.快速grep显示了它在5.5.8发行版中包含的以下脚本中的用法:

active-queries.lua
active-transactions.lua
load-multi.lua
ro-pooling.lua
rw-splitting.lua
tutorial-keepalive.lua

引起我注意的另一个例子是表中条目的属性proxy.global.backends列表.该文档列出了以下属性:

dst.name
dst.address
dst.port
connected_clients
state
type
Run Code Online (Sandbox Code Playgroud)

但是,一些示例脚本引用了一个相当复杂的称为pool的元素.举个例子tutorial-keepalive.lua:

local s = proxy.global.backends[i]
local pool     = s.pool
local cur_idle = pool.users[proxy.connection.client.username].cur_idle_connections
Run Code Online (Sandbox Code Playgroud)

起初我以为它被添加到lua中的其他地方,但我看了,我找不到任何代码分配到proxy.global.backends [i] .pool.

所以,我想两个问题:

  1. 我疯了吗?请随意展示我是如何忽略显而易见的,文档非常清楚.
  2. 假设我是正确的,有什么地方可以找到完整的文档吗?一个不错的链接会很棒(虽然我不能谷歌一个),但即使"从定义界面的mysql-proxy发行版看看这个.c文件".至少那会给我一些东西来戳.

谢谢

小智 1

自己刚刚打开Proxy/Lua。恐怕,就像 Mysql 的所有事情一样,一旦你深入了解,你就只能靠自己了。LUA 也是如此。您将需要 LUA 的其他插件来完成您想做的事情,我想建议: http ://peterodding.com/code/lua/apr/docs/#shared_memory 用于 Apache Protable 库绑定...救了我大量的时间。至于 MySql 的内部结构,您可能需要查看 C 源文件,遗憾的是,因为我们处于未开发的领域。

我发现的一件事是Mysql中的LUA结构不是Lua表,而是Lua“用户数据”。这意味着它们实际上是共享内存,因此 Lua 无法更改它们,因为 Mysql 也使用它们。我将尝试 luaposix 库,看看是否可以获取它们,因为如果可能的话,我想更改一些元素。

祝你好运

peter.colclough@toolstation.com