首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql-proxy read_auth步骤中 替换用户名和密码

2013-05-02 
mysql-proxy read_auth方法中 替换用户名和密码mysql-proxy 中的read_auth方法可以实现 将客户端发送来的

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

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

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属性,上面的程序会报以下错误信息:
.server_capabilities has to be set


需要改写成以下形式:


local protocol_41_default_capabilities = 8+512+ 32768                        --8 +     -- _CONNECT_WITH_DB                        --512 +   -- _PROTOCOL_41                        --32768   -- _SECURE_CONNECTION



 
proxy.queries:append(1,                        proto.to_response_packet({                                username = "root",                                response = password.scramble(scramble_buffer, password.hash("root")),                                server_capabilities=protocol_41_default_capabilities                        })                )


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

热点排行