mysql-proxy修改密码_mysql-proxy read_auth方法中替换用户名和密码

mysql-proxy read_auth方法中替换用户名和密码

mysql-proxy 中的read_auth方法可以实现 将客户端发送来的用户名和密码替换成真正的用户名和密码  ,比如  reaplace / me 替换成 root /root。最主要的部分是调用to_response_packet方法生成一个数据包发送给数据库进行验证。

在mysql-proxy 0.8.3 前的版本 写法如下

Java代码:

proxy.queries:append(1,

proto.to_response_packet({

username = "root",

response = password.scramble(s.scramble_buffer, password.hash("secret"))

})

)

return proxy.PROXY_SEND_QUERY

在mysql-0.8.3版本的api中增加了server_capabilities属性,上面的程序会报以下错误信息:

Java代码:

.server_capabilities has to be set

需要改写成以下形式:

Java代码:

local protocol_41_default_capabilities = 8+512+ 32768

--8 +     -- _CONNECT_WITH_DB

--512 +   -- _PROTOCOL_41

--32768   -- _SECURE_CONNECTION

Java代码:

proxy.queries:append(1,

proto.to_response_packet({

username = "root",

response = password.scramble(scramble_buffer, password.hash("root")),

server_capabilities=protocol_41_default_capabilities

})

)

被这个问题困扰了三四天,终于解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值