我知道在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查询。 example.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上阅读的多篇文章/教程,我的第一个控制台会话,即运行mysql-proxy的会话,应该根据example.lua文件打印出一些数据。然而,事情并没有发生,实际上没有任何反应。
我不确定以下信息是否有任何区别,但在我的“my.cnf”mysql配置文件中,我有这几行
bind-address = 255.255.255.255
#bind-address = 127.0.0.1
我用255.255.255.255替换了我的实际IP地址,因为我不想公开显示我的IP地址。
拜托,我一直试图解决这个问题好几天,没有多少新的lua脚本,或者更改mysql-proxy.cnf文件中的host:port参数已经解决了所有问题。我