问题标签 [proxysql]

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 回答
189 浏览

prepared-statement - 代理 SQL 准备好的语句客户端缓存是否可用?

我们有 JVM 应用程序与 mysql 的连接池。我们大量使用 PreparedStatements,因为我们有不超过 100 个不同的查询。驱动程序具有缓存准备好的语句的能力,因此我们获得了性能改进 - 每个语句只准备一次,并且以后不会对此查询进行 sql 解析(直到连接关闭)。从互联网上我发现proxysql支持准备好的语句,并且可以将已经准备好的语句返回给客户端,而无需在mysql中准备它(如果之前已经准备好了)。但是我没有找到任何信息,当 prepStmtCache=true 时它与客户端的行为如何?
使用 ProxySQL 在客户端使用 cachePrepStmts=true 是否安全?或者客户应该为每个查询准备语句?或者最好不要在 ProxySQL 中使用准备好的语句?

例如客户端发送 com_stmt_prepare 到 proxysql,proxysql 从池中获取连接(多路复用),检查该语句是否已经准备好,如果没有 - 将命令发送到 mysql,然后它在自己的缓存中注册准备好的语句并将准备结果返回给客户端(准备好的语句id,5例如)。客户端缓存它以连接到 ProxySQL。然后稍后客户端决定使用这个准备好的语句并发送com_stmt_execute(5, params)。这是合法的情况吗?ProxySQL 会使用与准备此语句的 mysql 的连接吗?

对于这种可能性,ProxySQL 应该有某种映射 <client stmt id, backend_connection -> mysql stmt id>。如果当前选择的连接没有映射 - 它应该首先准备它。但是我还没有发现任何关于这种映射存在的信息……也没有发现任何警告应该禁用客户端语句缓存。

0 投票
0 回答
59 浏览

mysql - ProxySql 仅用于远程 MySql 服务器的本地缓存

这可能是一个非常初学者的查询,但我需要帮助实现 proxysql。我想用proxysql,只作为本地缓存,不需要做平衡。

MySql 服务器是远程安装的。在proxysql配置中我做了以下

/etc/proxysql.cnf

使用该配置是否足以使缓存工作?

我找到的所有教程都详细说明了如何通过本地 mysql 配置 proxysql,而不是远程,所以我对配置有疑问。

问候,

0 投票
0 回答
257 浏览

mysql - 代理 SQL 错误“在 SET NAMES 期间检测到断开的连接”

我正在测试 proxysql 缓存功能,但出现此错误。

我的想法是使用 proxysql 来减少远程数据库服务器的负载。

在本地服务器上,我运行这些版本。

我已经阅读了几篇关于该错误的出版物,但事实是我不知道如何解决它。

远程服务器

有任何想法吗??

问候,

0 投票
1 回答
350 浏览

proxysql - 如何在 ProxySQL 中自定义错误日志格式?

我注意到我的 proxysql 错误日志 ( ) 中有一些语法错误/var/lib/proxysql/proxysql.log

但是他们只报告错误而不是导致它的查询。

是否可以在 proxysql.log 中也包含查询?

最终只记录出错的查询?

0 投票
1 回答
122 浏览

mariadb - 如何改变主控的切换逻辑?| ProxySQL Maxscale

环境:

  • MariaDB Ver 15.1 Distrib 10.5.9-MariaDB
  • ProxySQL Maxscale
  • Debian 10

我有主(A)>从(B)复制。复制由 Maxsale 使用自动故障转移控制。如果我的主服务器(A)上没有互联网,那么主服务器切换到从服务器。当 Internet 出现时,向导返回到其原始位置 (A)。如何确保master切换到slave不返回?

我试图安装enforce_simple_topology=true,它变得更糟了。我的 master>slave 复制转换为 master-master。它不适合我。

如何改变主控的切换逻辑?

0 投票
0 回答
173 浏览

mysql - Kubernetes 集群中的 ProxySQL 转储服务器

我管理一个 kubernetes 集群,我最近在其中添加了一个 ProxySQL 来处理 Master 和 Read-Replica 之间的查询路由。一开始它似乎运行良好,但几天后它在收到高流量时崩溃。导致超过 30 分钟的停机时间,我没有专业知识来弄清楚为什么会发生这种情况。Master 和 Read-Replica 托管在 Google 上,它是一个 Mysql 8.0。

崩溃发生时的 ProxySQL 日志: ProxySQL 日志

ProxySQL 再次出现时的日志: ProxySQL 再次登录

我正在使用的 docker 镜像:sevennines/proxysql:1.4.12 配置:

0 投票
0 回答
18 浏览

docker - 使用 docker 在虚拟机上监听 SQL 代理周围的活动

我在将数据融合与 Cloud SQL for MySQL db 连接时遇到问题。有时有效,有时无效。我的设置是我有一个 Cloud SQL 数据库、一个充当代理的 VM 和数据融合。

当与数据库的数据融合连接不起作用时,我想知道是因为数据融合无法与代理通信还是因为 MySQL 未连接到代理。

我该如何检查?

我的 VM 使用静态私有 IP 设置,并使用以下脚本运行:

0 投票
0 回答
86 浏览

networking - 如何解决 Cloud Data Fusion 的“通信链路故障”错误

我有两个 GCP 项目。一个从头开始构建的测试环境和一个具有现有 Cloud SQL for MySQL 实例的生产环境。我的目标是使用 Data Fusion 设置复制管道来复制一些 MySQL 表。

在测试环境中,我能够将数据融合连接到 MySQL。它不适用于生产环境。我有以下错误:

这个错误信息对我来说很神秘。据我所知,这两个环境的设置方式完全相同,所以我不明白这个错误来自哪里。我能做些什么来更好地理解这个错误背后的原因?

我的设置是私有 IP 上的一个 Cloud SQL for MySQL 实例、具有代理 SQL 的 VM 上的一个私有云融合实例。

0 投票
1 回答
253 浏览

mysql - 由于某种原因,ProxySQL 查询缓存并不总是遵守查询规则

我使用 ProxySQL (2.0.17) 缓存所有发送到 MySQL 的 SELECT 查询。该mysql_query_rules表如下所示:

一个简单的规则(我也试过^SELECT .*)和 300 秒等待缓存的查询被清除。

出于某种原因,每个要缓存的查询仍有 5% 被发送到后端。例如,这是最流行的查询:

我无法理解这种特殊性。每当我更新stats_mysql_query_digest时,count_staron hostgroup 2(backend) 都会增加,而无需等待 300 秒来清除查询。

查询缓存大小设置为 512 Mb。在高峰期,它占用大约 100 Mb。

帮助?..

0 投票
1 回答
115 浏览

docker - 尝试使用容器优化操作系统连接到 VM 上的代理 SQL 时丢失连接错误

对于使用 Data Fusion 的项目,我需要使用代理 SQL 创建一个虚拟机。为了测试这个代理,我用 MariaBD 创建了第二个实例,但我无法建立与代理的连接。这是我所拥有的:

在容器优化操作系统上运行的虚拟机,具有静态内部 IP,没有外部 IP。此 VM 使用以下启动脚本运行:

已激活私有 IP 的 Cloud SQL for MySQL 实例。

一切都在同一区域和网络的同一项目中的 GCP 上运行(默认)。防火墙广泛开放用于测试目的。

从第二个 VM运行以下命令mysql -u user_name -p'123' -h 10.132.0.4 -P 3307以进行测试时,出现以下错误:

那么这里的问题是什么?