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

标签 mysql-proxy

我正在为 mysql-proxy 编写脚本。我想要完成的事情是无关紧要的。但是,我发现似乎 lua 接口(interface)的某些元素未记录在案。我拥有的大“确凿证据”是disconnect_client()钩。我在 the official documentation 的任何地方都找不到它的记录, 虽然它在 explanation of the admin interface 上的示例中使用过.它也在示例文档中被广泛使用。快速 grep 显示了它在 5.5.8 发行版中包含的以下脚本中的用途:

主动查询.lua
事件事务.lua
加载multi.lua
ro-pooling.lua
rw-splitting.lua
教程-keepalive.lua

另一个引起我注意的例子是 proxy.global.backends 中条目的属性列表。 table 。 documentation列出以下属性:

dst.name
dst.address
dst.port
connected_clients
state
type

但是,一些示例脚本引用了一个相当复杂的元素,称为 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

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

所以,我想有两个问题:
  • 我疯了吗?请随时展示我是如何忽略显而易见的,并且文档非常清楚。
  • 假设我是对的,是否有任何地方可以找到完整的文档?一个不错的链接会很棒(虽然我不能用谷歌搜索),但甚至“看看定义接口(interface)的 mysql-proxy 发行版中的这个 .c 文件”。至少那会给我一些东西可以戳。

  • 谢谢

    最佳答案

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

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

    祝你好运

    peter.colclough@toolstation.com

    关于mysql-proxy - 是否有一套完整的 mysql-proxy lua 脚本文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225118/

    相关文章:

    mysql - 使用可伸缩性选项设置多个 MySQL 数据库

    mysql - HAProxy/MySQL Proxy/Mysql Router 主从复制;读写分离策略

    lua - Mysql-proxy和Lua如何将查询传输到不同的服务器进行分表?

    mysql - 使用 Rails 3 进行 MySQL 复制的最佳实现?

    mysql - 如何连接到在 LUA 中返回 JSON 的 Web 服务

    MySQL 代理负载平衡器问题

    mysql - Lua 脚本停止通过 mysql 代理在 mysql 中触发查询

    mysql 代理 r/w 复制和临时表