问题标签 [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 投票
0 回答
1807 浏览

mysql - 使用 NodeJS 的 MySQL 代理


我正在尝试创建一个简单的程序,在基于 MySQL 的应用程序和 MySQL 服务器之间创建代理。
现在,我的方法是更改​​应用程序以在端口 3065 与 MySQL 通信,而我的代理是一个简单的套接字服务器,它侦听所有请求并将它们发送到 MySQL 服务器。

我想改变架构,我看到了这个页面:http : //dev.mysql.com/doc/refman/5.0/en/mysql-proxy-scripting.html,在这个页面中我有我需要的东西 - read_query( ) 和 read_query_results()。
我的主要问题是 - 他们使用 LUA 作为代理的脚本语言,我如何在 NodeJS 中使用这个 API?

0 投票
5 回答
1864 浏览

mysql - 设置数据库分片 - 没有跨数据库查询

我正在开发一个 Web 应用程序,对于每个客户(一个小型​​大型组织),他们不能(也不应该)能够查询其他客户的记录。

将数据保存在单个数据库中会很容易,并且使更新和维护变得简单(直到我遇到可伸缩性问题)。但我现在想对应用程序进行未来验证。如果每个客户端的数据都包含在隔离的数据库中,那么每个客户端都会有更好的性能并且应该可以更好地扩展。我不确定它是否等同于数据库“分片”,因为我没有在多个数据库中划分单个模式。我基本上会在每个数据库中复制一个单一的模式(就像你在 CD 上发布软件的日子一样——每个都有自己的数据库)。

我已经对此进行了一些阅读,因此我对一般概念有所了解。但是,我脑子里有很多问题。我不确定这个过程有多透明。或者,每当我想推出更改时,我会遇到更新数百个模式的维护噩梦。

真的,我只是在寻找一个简单的“完整”示例(希望使用 spring/java)。

  1. 我想我可以有一个应用程序服务器从一个数据源开始,假设一个 mysql 实例具有一个将用户 ID 映射到数据库的表。

    • 用户身份
    • 数据库/分片 ID

    对于每个请求(查询),忽略数据库缓存,是否必须为用户查找分片 ID?或者这是它最初可以在每个会话中执行一次并直接与目标数据库对话的事情?(你可能会说我不擅长服务器端的东西)。

  2. 有人可以对这在 Spring 中可能如何连接进行高级概述吗?目前,我的架构非常简单。我有使用 jdbctemplate 的简单 Spring 组件 DAO。注入 DAO 的数据源(数据源在 applicationContext.xml 上配置)。DAO 自动连接到我的服务类中。很标准的东西。

  3. 假设我让上一步工作,现在我必须更改架构。是否有管理工具可用于一次应用架构更改并将其传播到 100 个其他数据库?

我正在使用 MySQL。我相信“MySQL 代理”可能能够解决问题 1 和 2。有没有人有这方面的经验?我想它无法处理管理模式更新,所以我可能不得不推出自己的解决方案。

谢谢!

0 投票
1 回答
477 浏览

java - Mysql-Proxy 不进行故障转移 (?)

这是我第一次使用 mysql-proxy,我遇到了奇怪的行为,我想知道社区之前是否已经解决过它。

我在连接到 2 个 mysql 服务器的 amazon linux(在 ec2 中)上运行 mysql-proxy(0.8.2)。我的 java 客户端可以连接到代理并且负载平衡工作正常。

我的问题是:我有一个客户端(通过代理)连接到服务器 A。在我测试故障转移之前它工作得很好。当我关闭服务器 A 并且客户端尝试执行简单的插入命令(在已建立的连接上)时,我期待代理将请求重定向到服务器 B。但是我得到了这个异常:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障。

本例中的客户端是使用 mysql-connector-java-5.1.17-bin.jar 的 Java 程序

有什么想法可以解决这个问题,还是我在这里遗漏了什么?

0 投票
1 回答
545 浏览

mysql - Amazon Cloud 上的 MySql 复制故障转移

我已经配置了一个带有 1 个 Master 1 Standy 和 1 个 Slave 的 MySql 复制。Master 和 Standby 位于美国东部地区的不同可用区,Slave 位于美国西部地区。Standby 和 Slave 都在从 Master 复制。

应用层可以进行从 Master 到 Standby 的故障转移。用于在 Master 死亡时将 Slave 的复制切换到 Standby。我无法保证 Standby 的数据与 Slave 的数据相比领先。如果 Standby 的数据落后于 Slave 的数据,我需要扫描 Slave 的二进制文件和中继日志以找出丢失的内容并将其传输到 Standby。这就是理论。

有谁知道可以处理这个的任何工具?或我的上下文的替代解决方案?最终目标是 MySql Server 对应用层的可用性。我已经尝试过 MySql-Proxy 但对它不太满意。Mysql Cluster 不是我们的选择。

提前致谢。

0 投票
1 回答
6512 浏览

mysql-proxy - 用于远程 MySQL 服务器的 mysql-proxy

我的程序与远程 MySQL 服务器一起工作,我想在我的计算机上创建一个本地代理服务器,以使事情变得更快(池连接、缓存查询等)。我查看了文档:http ://dev.mysql.com/doc/refman/5.1/en/mysql-proxy.html

我在一个控制台上运行:

在另一个控制台上:

但是,我没有看到远程服务器(qa-srv)上的数据库,而是看到了本地服务器上的数据库!

我也试过这个:

我还尝试运行代理而不是 mysql 守护进程:

在另一个控制台上:

如何告诉我的 mysql 客户端通过本地代理连接到远程服务器?

0 投票
1 回答
616 浏览

mysql - 如何从 mysql-proxy 执行 lua 脚本

我正在尝试从 mysql 代理执行 lua 脚本。我编写了一个名为 login.lua 的脚本。我成功安装了 mysql-proxy。我尝试调用该命令
mysql-proxy --proxy-lua-script=/path/to/login.lua
然后我启动了 mysql 客户端并输入密码登录。

我期待 mysql 客户端调用 mysql 代理,因此期待 login.lua 在命令行上执行。这是预期的行为吗?如果是这样,我是否缺少任何负责客户端调用代理的配置?

请帮忙

0 投票
1 回答
601 浏览

mysql - 如何用 mysql-proxy 或任何可能的方式替换我的查询?

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

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

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

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

示例查询:

预期查询:

0 投票
1 回答
15955 浏览

mysql - PHP MySQL DSN 连接 - 如何启用 mysql://

如何在 mysql 服务器上启用这种类型的命令,它是什么?

我看到它的客户端代码:

通常我会期望:

0 投票
1 回答
1091 浏览

mysql - MySQL 代理查询重写

我想用(对于这个用例)更改所有SELECT COUNT(*)查询。SELECT COUNT(1)

我有以下 lua 脚本,但它不能以某种方式工作:

我究竟做错了什么?

0 投票
1 回答
1957 浏览

mysql - MySQL 代理和基本故障转移(检测状态)

我刚刚安装了 mysql proxy 0.8.2,并开始使用它。我将它与两台 MySQL 5.5 服务器一起使用,在 3306 上监听,代理在 4040 上运行。哦,操作系统是 Win 7 32 位。

我的问题是,检查服务器状态的 mysql 代理似乎不应该这样做。

我启动了脚本,它按应有的方式运行。但是当我关闭主服务器时,脚本似乎没有意识到这一点 - 它仍然试图连接到它......

版本信息

我的配置

故障转移 lua 脚本