我正在处理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但是,有几个示例脚本引用了一个相当复杂的元素,称为池。以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一开始我以为它是在lua的其他地方添加的,但是我已经看过了,但是我找不到任何分配到proxy.global.backendsi.pool中的代码。
所以,我想有两个问题:
谢谢
发布于 2012-06-22 14:50:40
我刚打开了代理/Lua。我担心,就像所有的事情一样,Mysql,一旦你在被子里下潜,你就只能靠自己了。卢阿也是如此。您将需要LUA的其他加载项来完成您想做的事情,我想建议您: Apache库绑定的内存 .为我节省了一大笔时间。至于MySql的内部结构,您可能需要查看teh源文件,遗憾的是,我们在这里还处于未开发的领域。
我发现Mysql中的LUA结构不是Lua表,而是Lua‘用户数据’。这意味着它们是有效的共享内存,因此Lua是不可更改的,因为Mysql也使用它们。我将尝试luapo-6库,看看是否可以访问它们,因为如果可能的话,有些元素我想要更改。
祝好运
peter.colclough@toolstation.com
https://stackoverflow.com/questions/5225118
复制相似问题