问题标签 [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 回答
65 浏览

grafana-alerts - 使用 ProxySQL 作为数据源的 Grafana - 连接被拒绝以发出警报

我们尝试将我们的 grafana (v7.3.7) 连接到 proxysql 实例作为 mysql 数据源,这对我们的面板工作正常。我们想实现通过proxysql向slave主机组发送grafana读取流量。

但是,如果面板定义了一些警报规则,则它们的状态在 ok 和 no data with error 之间处于未决状态:

数据源的连接参数:127.0.0.1:6033

在此处输入图像描述

我在 grafana 和 proxysql 日志中都找不到问题。

所以我真的不明白为什么会这样。如果我们切换回直接访问 mysql 服务器,警报确实有效。所以我尝试在 proxysql 配置中找到一些调整。例如,增加最大允许的数据包大小但没有成功。

grafana 中的“警报引擎”是否使用不同的连接参数?

0 投票
1 回答
116 浏览

java - 通过命令连接的 ProxySQL ssl 有效,但通过 Java 客户端无效

我可以通过 ProxySQL(使用 ssl)连接到 MariaDB 实例:

但是当我尝试使用 Java 客户端连接时:

异常输出是:

java.sql.SQLNonTransientConnectionException:无法连接到地址=(主机=192.168.33.180)(端口=6033)(类型=主):无法连接到192.168.33.180:6033:PKIX路径构建失败:sun.security.provider .certpath.SunCertPathBuilderException:无法在 org.mariadb.jdbc.internal.util.exceptions 的 org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73) 中找到请求目标的有效认证路径。 org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java: org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1394) 635) 在 org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:150) 在 org.mariadb.jdbc.Driver.connect(Driver.java:89) 在 java.sql/java.sql。DriverManager.getConnection(DriverManager.java:677) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189) at com.gtl.datamigration.App.checkTable(App.java:211) at com.gtl .datamigration.App.lambda$5(App.java:447) 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker。在 java.base/java.lang.Thread.run(Thread.java:829) 运行(ThreadPoolExecutor.java:628) 原因:java.sql.SQLNonTransientConnectionException:无法连接到 192.168.33.180:6033:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在 org.mariadb.jdbc 的 org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73) 中找到请求目标的有效证书路径。内部的.util。exceptions.ExceptionFactory.create(ExceptionFactory.java:185) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:575) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol. java:1389) ... 10 更多原因:javax.net.ssl.SSLHandshakeException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在 java.base/sun 中找到请求目标的有效证书路径.security.ssl.Alert.createSSLException(Alert.java:131) 在 java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:349) 在 java.base/sun.security.ssl.TransportContext.fatal (TransportContext.java:292) 在 java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:287) 在 java.base/sun.security.ssl。java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1231) 在 java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer 的 CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1356)。在 java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) 在 java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:443) 消费(CertificateMessage.java:1174)在 java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:421) 在 java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:182) 在 java.base/sun.security .ssl.SSLTransport.decode(SSLTransport.java:171) 在 java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1418) 在 java.base/sun.security.ssl.SSLSocketImpl。在 java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440) 在 java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:411) 的 readHandshakeRecord(SSLSocketImpl.java:1324)在 org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.sslWrapper(AbstractConnectProtocol.java:658) 在 org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:541) ... 11 更多原因: sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在 java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java) 中找到请求目标的有效证书路径:439) 在 java.base/sun.security.validator 的 java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)。Validator.validate(Validator.java:264) 在 java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:313) 在 java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java: 222) 在 java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1340) 的 java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129) ... 24更多原因:sun.security.provider.certpath.SunCertPathBuilderException:无法在 java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) 在 java.base 中找到请求目标的有效证书路径/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) 在 java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) 在 java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434) ... 30 更多

我尝试这个没有运气。

使用

-Djavax.net.debug=全部

出现以下附加信息:

请给我一些提示尝试。

0 投票
0 回答
76 浏览

autoscaling - 使用 GCP MIG 的 ProxySQL

现在,我已将后端设置为具有“N”台机器的托管实例组。哪里N in 2 to 5。每台机器内部都安装了一个ProxySQL。

作为持久层,我使用 CloudSQL 设置了 Master/Slave 配置,其中 M 是 slaves 的数量M in 1 to 3

此时,要求是在多个副本之间进行负载平衡查询,我可以为 MIG 的重负载启动,并且需要重新配置 MIG ProxySQL 以绑定到新创建的从属服务器。

例如,在下午 5 点,我的 web 服务将面临高流量,我需要创建更多的 SQL 从站来接受更多的 SQL 连接。所以我将创建多个从属复制。M从1增加到3,N从2增加到4

Now I'm trying to get the best solution for this purpose. One possible solution that I found is to use ProxySQL but with some heavy limitation for the MIG.

The GPC MIG is stateless, and actually doesn't know how many replicas are up and running. Plus when a new MIG instance is created how can it get the new configuration if not all the SQL replicas are yet running?

What is the best implementation for discovery the number of possible healthy SQL replicas and reconfigure the ProxySQL configuration (runtime/disk/memory), maybe with a custom polling of 5 seconds where the VM is asking for new configuration.

Are available already some implementation? What is the best solution? I have found some links but not the best slution for me.

Thanks in advance.

0 投票
1 回答
39 浏览

proxysql - ProxySQL 在 PHP 7.4.23 (Silverstripe) 上插入重复条目

请帮忙

我目前正在使用 1 个主设备和 2 个从设备设置 ProxySQL。我在 这里设置了 mysql_query_rules 的图像 ,但我在 mysql 客户端上按预期工作,插入到主服务器,选择到从服务器。但是当我将我的 PHP 项目连接到 ProxySQL 时,插入任何东西时都会出错。

错误插入

我的操作系统:Centos 7 PHP:7.4.23(Silverstripe 3)也许有人遇到过这样的麻烦,并且已经解决了。

0 投票
0 回答
12 浏览

mysql - ProxySQL 和 exim 之间的连接

我正在尝试通过 exim 使用 proxysql。

我已经进行了必要的配置,但我无法让 exim 从数据库服务器中获取数据。

从 proxysql 到远程数据库服务器的连接工作正常。

从 exim 我也看不到错误:

这里是 exim 的调试:https ://pastecode.io/s/a3td0uvw

在 proxysql 日志中我没有看到任何错误,有什么帮助吗?有什么方法可以从proxysql 进行全面调试?

问候,

0 投票
0 回答
50 浏览

mysql - 慢查询和proxysql

我想使用proxysql,这样他们就可以自己重定向请求,这将需要很长时间才能执行,我不知道这是否可能,但无论我多么努力地找到任何东西,我都会看。有人会知道吗?

0 投票
1 回答
53 浏览

mariadb - 永远在线的 ProxySQL 后端从不回避

我正在尝试通过 proxysql 为 galera 集群设置简单的代理。后端节点和 proxysql 都在 docker 中。代理工作正常,除了监控。当我在一个节点上停止 mariadb 时,proxysql 仍然将该节点显示为 ONLINE。

我试过了:

  • 创建监控用户。这似乎工作正常。
  • 将配置加载到运行时。
  • 设置 mysql-connect_timeout_server_max=20000;
  • UPDATE mysql_servers SET max_latency_ms=30 WHERE hostname='10.77.250.25';
  • 更新 mysql_servers SET max_replication_lag=30 WHERE hostname='10.77.250.25';

proxysql 管理控制台的输出:

请帮忙!

0 投票
0 回答
21 浏览

mysql - 在 ubuntu 上将 proxysql 配置为 mysql 的负载均衡器

我正在尝试在 ubuntu 20.04 上使用 PoxySQL 作为 mySQL 的负载均衡器

我创建了 3 个服务器并创建了一个组复制我从机器 1 创建了一个名为 playgrounduser 的用户,并将所有 PROVILEDGES 授予 playgrounduser,现在我回到我的 proxysql 并写道:

然后我尝试发出一个查询示例ProxySQLClient> SELECT @@hostname; ,出现以下错误: