问题标签 [mysql-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
386 浏览

mysql - mysql-proxy proxy.queries:附加调用失败,出现 .server_capabilities 错误

我正在尝试使用 mysql-proxy 来替换身份验证凭据,如下所示:

它因此错误而失败:

(关键)(read_auth)[字符串“/home/aabbcc/test.lua”]:51:必须设置.server_capabilities

如何正确设置“.server_capabilities”?

0 投票
1 回答
634 浏览

mysql - 在没有 MySQL 代理的情况下代理连接到 MySQL

MySQL Proxy听起来像是代理与 MySQL 服务器的连接以在线修改查询的最佳选择,但它仅支持 Lua和 AFAIK 中的脚本。

是否可以用 Lua 以外的语言编写 MySQL 代理行为脚本?理想情况下,C、C++ 还是 C#?

如果不是,我如何在不完全实现MySQL 客户端/服务器协议的情况下查看和修改 MySQL 客户端和服务器之间的流量(例如,在 C# 中) ?

0 投票
2 回答
1341 浏览

c - 从 lua 脚本调用 c 函数

我在这方面找到了一些参考资料,但我无法让它们发挥作用。我有一个带有 mysql 和 mysql-proxy 的 Debian 盒子。我正在使用 LUA 脚本拦截 SQL 查询。

我想解析和处理查询,以便我可以用我已经开发的一些 c 函数重写它。我正在尝试找到调用此功能的方法,但我发现的唯一方法是假设 c MAIN 函数启动 LUA 注册过程。

有什么方法可以让 LUA 脚本调用编译后的 C 文件中的函数?

我应该如何拨打(LUA)和接听(C)电话的任何示例?

0 投票
1 回答
510 浏览

mysql - mysql-proxy result field manipulation

I have a MYSQL server and MYSQL-PROXY and I am trying to manipualte the results I send to the client as a response to a SELECT query. I have writen this code in lua:

I can correctly read the field names and values. I can detect the condition where I want the result modified, but I can not get the data sent to the client.

I see two problems:

  • I am setting the value in the local row variable, but I have not found the way to set the real resultset (inj.Resultset.row[i] or something similar).
  • There is something wrong with return proxy.PROXY_SEND_RESULT, because I am seeing that whenever I comment that sentence I see the results, and If I uncomment it I get an error.

I have not found example code as a reference.

0 投票
0 回答
1005 浏览

nginx - 谷歌云计算负载均衡器 504 错误

我有以下设置。

2 个运行 nginx/php5-fpm 的 gce n1.standard 实例

1 个云 SQL d8 实例,两个 GCE 实例都连接到它。

前端服务器正在运行 osCommerce-2.3.3.4 的精简版本,前端没有管理部分。它只是 osC 的目录部分。

我进行了负载影响的负载测试,该站点在大约 50-100 个用户时无法使用。我只希望在任何时候支持绝对最多 500 个/用户。在我们当前的服务器上,我们平均大约 130-170。

我不是在寻找一个完整的解释,而是寻找任何有用的地方来检查、尝试的东西、阅读的东西,我只需要一个方向来让这个云平台像我们想要的那样工作。

提前致谢。

0 投票
2 回答
10430 浏览

mysql - 如何在亚马逊 ec2 上的 ubuntu 上设置和配置 mysql-proxy

我正在尝试在亚马逊 ec2 上的 ubuntu 上设置 mysql-proxy 我已经完成了以下操作:

我将以下内容放在“/etc/default/mysql-proxy”上

还与“--proxy-address=private_ip_or_public_ip_of_proxy-server:3306 或 4040”和“--proxy-backend-addresses=public_ip_of_another_ec2_db_server:3306,public_ip_of_another_ec2_db_server:3306”相关联

之后,我尝试使用 mysql 从另一台 PC 连接代理服务器,例如:

但它不工作它的显示错误:

我想告诉你可以远程连接数据库服务器,我允许远程连接到任何主机

我也试过 /etc/init.d/mysql-proxy start 或 /etc/init.d/mysql-proxy restart 但没有结果

只是为了通知您 /etc/init.d/mysql-proxy stop 显示失败

谁能帮我在ubuntu上设置和配置mysql-proxy

===

编辑

我从stackoverflow的其他问题中找到了一些帮助,并且根据评论中的建议,已经完成了以下程序。现在看来它正在工作。

我在本地(在代理服务器上)安装了 mysql-client 和 mysql-server,然后我尝试使用以下命令运行 mysql-proxy:

然后我尝试远程连接到代理服务器及其工作。但似乎我需要在屏幕下运行此命令,因为当我关闭终端代理停止工作时。

你能告诉我我需要在屏幕下运行这个命令还是有其他方法让它一直活着?

0 投票
1 回答
790 浏览

mysql - 在不同的 MySQL 数据库上分发记录 - MySQL 代理替代品

我的情况如下:

现在我正在使用一个带有多个表的大型 MySQL 数据库来存储用户数据。许多表包含自动递增列。

我想将其拆分为 2 个或更多数据库。分配应由 user_id 完成并确定(不能随机)。例如,用户 1 和 2 应该在 database1 上,用户 3 在 database2 上,用户 4 在 database3 上。
由于我不想改变我的整个前端,我想仍然使用一个数据库适配器,并在查询生成(前端)和查询执行(在正确的数据库上)之间添加一层。该层应根据 user_id 将查询分配到正确的数据库。

我发现MySQL Proxy听起来完全符合我的需要。不幸的是,它处于 alpha 阶段,不建议在生产环境中使用。
对于 php,有MySQL Native Driver Plugin API,这听起来很有希望,但我需要一个至少支持 phpjava 的层。

有没有其他方法可以实现我的目标?谢谢!

0 投票
0 回答
213 浏览

mysql - MySQL 代理和负载平衡

我只想准确了解 MySQL Proxy 的连接和查询行为。

我有两个后端服务器都运行相同的 MySQL 安装,设置在一个似乎运行良好的主-主配置中。即我可以在一个上操作表格和数据,并且更改会立即反映在另一个上,反之亦然。

我已经在单独的机器上安装了 MySQL Proxy,后端服务器在批处理文件的命令行中指定。

我可以使用代理的地址通过 Workbench 访问我的数据库。

我的问题是如何以及将什么委派给每个服务器?它在文档中声明代理使用循环拆分客户端(我假设只是平均拆分请求?)。这是否意味着实际建立的 PDO 连接被共享出来,或者是发送给它的查询?

如果是后者,它是否也会分解子查询?如果不是,那么我是否需要重新编码更复杂的 SQL 语句以利用客户端/连接拆分?


我认为需要重新完成查询的一个简单示例是:

将(更多参与):

或者这只是疯狂?请求在服务器之间拆分的事实是否会抵消额外的开销?或者它会比“传统”方式慢得多吗?(对任何代码错误表示歉意,因为这不是我的想法)。

我知道 LIMIT 不是“id”,它只是一个简单的例子。

0 投票
1 回答
1928 浏览

mysql - MySQL 代理负载均衡器问题

我试图配置mysql-proxy 0.8.2. 后面有两个主机:M1(10.10.10.1)和M2(10.10.10.2)。

M1和之间有一个 MySQL 复制M2M1是主人,M2是奴隶。所有请求什么类型是“写入”,正确转发到 M1 并立即将此记录从 复制M1M2

但是如果请求类型是“读”,代理不能转发到M2,只能转发到M1。我检查了这些数据包tcpdump,我看到每个数据包都收到了M1。从代理到 MySQL 服务器的连接使用 telnet 和 MySQL 命令完美检查。

当我关闭M1服务器时,所有请求(读/写)都发送到另一个(M2)服务器。M1服务器关闭后,运行M2良好。每条记录都可用。

我不明白为什么在可用时mysql-proxy也不将读取的数据包转发到。问题是什么?或者这就是它正常运行的方式?M2M1

这是我的配置:

0 投票
0 回答
1124 浏览

mysql - mysql-proxy not running lua script

I know there are many mysql-proxy questions on SO, however I have read through many of them and none seem to solve my problem. I am simply trying to get mysql-proxy up and running, with the eventual purpose of rewriting some queries that go through the proxy. I am using ubuntu 14.04, I have mysql-proxy version 0.8.1, and mysql version 5.5.37. To start mysql-proxy I run the following line on the command line

where the file mysql-proxy.cnf looks like the following:

My example.lua script is very simple, and meant only to verify that the mysql-proxy query is being altered. example.lua is pasted below

Since I don't run this with the --daemon flag, when I run that line above in the command line it just loops indefinitely, which is expected.

Finally, in separate terminal session, I run the following on the command line and enter my password in order to connect with the proxy

I then select a database to use, and run a simple SELECT query on one of the tables. Based on multiple articles/tutorials I've read on mysql-proxy, my first console session, the one that ran mysql-proxy, should print out some data based on the example.lua file. However this does not happen, in fact nothing happens.

I'm not sure if the following bit of information makes any difference, but in my "my.cnf" mysql configuration file, I have these couple of lines

where I have replaced my actual ip address with 255.255.255.255 because I do not want to display my ip address publicly.

Please, I have been trying to figure this out for several days, and no amount of new lua scripts, or changing the host:port parameters in the mysql-proxy.cnf file have solved anything. I