mysql-proxy没有运行lua脚本。

我知道在SO上有许多关于mysql-proxy的问题,但我已经阅读了其中的许多,并没有解决我的问题。我只是想让mysql-proxy运行起来,并旨在重写通过代理的一些查询。我使用的是Ubuntu 14.04,有mysql-proxy版本0.8.1和mysql版本5.5.37。要启动mysql-proxy,我在命令行上运行以下行

sudo mysql-proxy --defaults-file=mysql-proxy.cnf

其中文件mysql-proxy.cnf如下所示:

[mysql-proxy]
log-file=                   /var/log/mysql/proxy-error.log
log-level=                  debug
admin-lua-script=           /usr/lib/mysql-proxy/lua/admin.lua
proxy-lua-script=       /path/to/lua/script/example.lua
admin-username =            myusername
admin-password =            mypassword
proxy-skip-profiling =      true
proxy-address =             localhost:4040
proxy-backend-addresses =   localhost:3306
plugins =                   proxy,admin

我的example.lua脚本非常简单,只是为了验证mysql-proxy query是否被修改。例子lua如下

-- first_example.lua
function read_query(packet)
    if string.byte(packet) == proxy.COM_QUERY then
        print("Hello world! Seen the query: " .. string.sub(packet, 2))
    end
end

由于我没有使用--daemon标志运行它,当我在命令行中运行该行时,它将无限循环,这是预期的。

最后,在单独的终端会话中,我在命令行上运行以下命令,并输入我的密码以连接代理

mysql -u myusername -p -h localhost -P 4040

我然后选择要使用的数据库,并在其中一个表上运行简单的SELECT查询。根据我阅读过的多篇文章/教程,我的第一个控制台会话,运行mysql-proxy的那个,应该基于example.lua文件打印一些数据。 但是它不会发生,实际上什么都没有发生。

我不确定以下信息是否有任何差异,但在我的“my.cnf” MySQL配置文件中,我有这几行

bind-address            = 255.255.255.255
#bind-address           = 127.0.0.1

我已经将我的实际IP地址替换为255.255.255.255,因为我不想公开显示我的IP地址。

拜托了,我已经试图解决这个问题好几天了,无论有多少个新的lua脚本或更改mysql-proxy.cnf文件中的主机:端口参数,都没有解决什么问题。

点赞