2

我已经成功安装了 mysql-proxy 并了解了工作方式和 lua 脚本。但是我不擅长写lua。

所以我的问题是我用于网络托管的软件不断在查询中使用 OLD_PASSWORD('') 创建 mysql 用户。我认为 mysql-proxy 应该很容易用新的 PASSWORD('') 值替换 OLD_PASSWORD('') 。

我最近在 youtube 上看到了一些教程,一些 ppl 设法通过 phpmyadmin 替换查询。如果有任何其他方法可以替换查询,请现在告诉我。

不:我无法更改来自软件的查询,因为它已编码并且某些文件是 exe。

示例查询:

INSERT INTO mysql.user (Host, User, Password) VALUES ('localhost', 'safaf', OLD_PASSWORD('123456'))

预期查询:

INSERT INTO mysql.user (Host, User, Password) VALUES ('localhost', 'safaf', PASSWORD('123456'))
4

1 回答 1

1

在互联网上进行了一些搜索后,我找到了解决方案。

 function read_query( packet )
   if string.byte(packet) == proxy.COM_QUERY then
     local query = string.sub(packet, 2)
     local replacing = false
     -- matches "OLD" as first word of the query
     if string.match(string.upper(query), 'OLD_PASSWORD') then
         query = string.gsub(query,'OLD_PASSWORD', 'PASSWORD')
         replacing = true
     end
     if (replacing) then
         proxy.queries:append(1, string.char(proxy.COM_QUERY) .. query )
         return proxy.PROXY_SEND_QUERY
     end
   end
 end
于 2012-02-04T13:22:08.820 回答