我有MySQL代理运行,我有一个功能的LUA,read_auth()但在身份验证过程中传递的密码被哈希(如预期).
我需要的格式是我可以使用和发布的,所以明文.在MySQL客户端上启用明文插件没有任何效果,我怀疑MySQL代理不要求客户端以明文形式发送它,因此默认为散列.
所以基本上:你对我如何能够在read_auth()MySQL代理的功能中获得明文验证细节有任何想法吗?
注意:我的最终目标是使用LDAP进行身份验证,但是我可以获取密码(哈希是否哈希)的唯一方法是实际绑定到LDAP,无法通过搜索获得.
我正在寻找类似MySQL Proxy的东西.目的是修改服务器上的传入查询.我不是在寻找其他方法来实现同样的目标.我目前最好的猜测是修改GridSQL,但这增加了复杂性并且需要时间.我之前以一种截然不同的方式问过这个问题并且没有得到相关的结果,所以我删除了这个问题并添加了这个问题.
编辑:客户端可以继续使用PostgreSQL协议非常重要,因此我正在寻找的软件包需要使用它进行通信.
我正在玩mysql-proxy的脚本.我想要完成的是无关紧要的.然而,我发现,似乎有lua接口的元素没有记录.我所拥有的大"吸烟枪"就是disconnect_client()勾手.我无法在官方文档中的任何地方找到它,尽管它在管理界面的解释中用于示例中.它也在示例文档中广泛使用.快速grep显示了它在5.5.8发行版中包含的以下脚本中的用法:
active-queries.lua
active-transactions.lua
load-multi.lua
ro-pooling.lua
rw-splitting.lua
tutorial-keepalive.lua
引起我注意的另一个例子是表中条目的属性proxy.global.backends列表.该文档列出了以下属性:
dst.name
dst.address
dst.port
connected_clients
state
type
Run Code Online (Sandbox Code Playgroud)
但是,一些示例脚本引用了一个相当复杂的称为pool的元素.举个例子tutorial-keepalive.lua:
local s = proxy.global.backends[i]
local pool = s.pool
local cur_idle = pool.users[proxy.connection.client.username].cur_idle_connections
Run Code Online (Sandbox Code Playgroud)
起初我以为它被添加到lua中的其他地方,但我看了,我找不到任何代码分配到proxy.global.backends [i] .pool.
所以,我想两个问题:
谢谢
我刚刚下载了MySQL Workbench.
但我不太明白如何将其与远程服务器上的数据库同步.
工作台要求"主机名",所以我提供了我的远程服务器的主机名.我指的是3306端口.
然后我提供用户名.这是我登录PhpAdmin时使用的用户名 - 我应该使用另一个吗?
然后我提供了一个密码,也就是我用于PhpAdmin的密码.
但这不起作用.
奇怪的是,错误总是告诉我我的用户名是: username@current_network_im_using_to_access_the_internet
但这似乎不对 - 在phpAdmin我的用户名说username@localhost.
我不太清楚该怎么做.
你能帮助我吗?
我刚刚下载了mysql-proxy并创建了这个脚本lua(在Mysql docs中找到):
function read_query(packet)
if string.byte(packet) == proxy.COM_QUERY then
print("QUERY: " .. string.sub(packet, 2))
end
end
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的命令行:
mysql-proxy -P localhost:1234 -b localhost:3306 --proxy-lua-script=profile.lua --plugins=proxy
Run Code Online (Sandbox Code Playgroud)
当我运行一个简单的查询(如"select*from table1")时,会报告此错误:"failed:.\ lua-scope.c:241:stat(C:...\profile.lua)失败:没有错误(0)"
注意:如果我在没有lua脚本的情况下运行mysql-proxy,则不会发生错误.
我需要安装一些东西才能让mysql-proxy和查询跟踪工作?
我的环境是Windows 7 Professional x64.
抱歉,英语不好.
我试图在开发机器上安装代理,我收到以下错误.
/etc/init.d/mysql-proxyd start
Starting mysql-proxy: 2011-02-26 15:51:45: (critical) admin-plugin.c:569: --admin-username needs to be set
2011-02-26 15:51:45: (critical) mainloop.c:267: applying config of plugin admin failed
2011-02-26 15:51:45: (critical) mysql-proxy-cli.c:596: Failure from chassis_mainloop. Shutting down.
[ OK ]
Run Code Online (Sandbox Code Playgroud)
由于这只是一台测试机,我不想要代理的安全功能.如何避免上述错误?
是否可以在lua脚本中拦截和更改mysql-proxy的登录信息。
例如,如果用户要像这样点击代理:
mysql -h localhost -P 4040 -u bob -D orders -p
Run Code Online (Sandbox Code Playgroud)
我希望连接不仅重定向到后端服务器,而且用户名/数据库名称也要更改,以便上面的命令等效于此:
mysql -h production.server -P 3306 -u bob_production -D bob_orders -p
Run Code Online (Sandbox Code Playgroud)
我注意到,似乎只有通过身份验证后,才能在脚本中获取身份验证信息,即使我以前可以获取身份验证信息,我也看不到轻松注入它的方法。
有谁知道如何在mysql-proxy或其他解决方案中做到这一点?
如何在mysql服务器上启用此类型的命令,它是什么?
我看到了客户端代码:
//$dsn = "mysql://root@localhost/username";
//$dsn = "mysql://admin@999.69.205.174/pass";
Run Code Online (Sandbox Code Playgroud)
通常我会期望:
$con=mysql_connect($db,$dbuSER,$dbpass);
Run Code Online (Sandbox Code Playgroud) 我在启动 Google SQL 代理时遇到问题。
我这样安装代理:
$ wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
$ mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy
$ chmod +x cloud_sql_proxy
$ sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
Run Code Online (Sandbox Code Playgroud)
问题是当我尝试运行代理时:
$ ./cloud_sql_proxy -dir=/cloudsql -instances=myproject:us-central1:mydb
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
googleapi: Error 403: Request had insufficient authentication scopes., forbidden
Run Code Online (Sandbox Code Playgroud)
我按照文档中的描述启用了 Google API。“Compute Engine”和“Cloud SQL”都在同一个项目中。我预计不需要额外的身份验证。
请指教。
谢谢。
mysql google-api mysql-proxy google-cloud-platform cloud-sql-proxy
我需要建立一个MySQL环境,支持随着时间的推移添加许多独特的数据库(实际上是数千个).我假设在某些时候我需要开始添加MySQL服务器,并希望我的环境事先为案例做好准备,以便轻松过渡到第2,第3,第100服务器.
只是为了让它变得有趣,如果对解决方案进行建模,那么查询数据库的应用程序会将所有查询发送到单个地址并接收结果,这将非常方便.它应该不知道服务器的数量和位置.数据库名称是唯一的,可用于确定哪个服务器拥有数据库.
我已经做了一些研究,并且MySQL Proxy作为主要候选者弹出,但是我还没有找到任何关于如上所述使其执行的具体内容.
任何人?
我们有一个系统,我们有一个主/多个从。
目前一切都发生在 Master 上,而 Slave 只是在这里做备份。
我们使用 Codeigniter 作为开发平台。
现在我们决定使用从属设备进行读取,使用主设备进行写入查询。
有人告诉我,如果不修改源代码,这是不可行的,因为代理无法知道查询的类型。
任何想法如何在不给完美工作的系统造成太大损害的情况下继续进行...
mysql-proxy ×11
mysql ×9
lua ×2
codeigniter ×1
dsn ×1
google-api ×1
postgresql ×1
rewrite ×1
scalability ×1