如何从应用程序连接到 ProxySQL

Posted

技术标签:

【中文标题】如何从应用程序连接到 ProxySQL【英文标题】:How to connect to ProxySQL from application 【发布时间】:2017-10-25 12:03:18 【问题描述】:

我在 3 个节点(node1、node2、node3)上运行 Percona XtraDB Cluster。我已经在第 4 个节点(管理员)中配置了 ProxySQL。

我有一个尝试访问集群的 python 应用程序代码。

在连接到node1的3306端口时,我可以连接。

import mysqldb as mdb
db = mdb.connect(host="node1", port=3306,user="root", passwd="*****", db="percona")

为了实现负载均衡,应用程序应该指向ProxySQL的6032端口。

import MySQLdb as mdb
db = mdb.connect(host="admin", port=6032,user="admin", passwd="*****", db="percona")

在尝试连接时,我收到以下错误:

OperationalError: (1045, "ProxySQL Error: Access denied for user 'admin'@'' (using password: YES)")

我在proxysql中使用了grant privilages命令

grant all privileges on percona.* to 'admin'@'%' identified by password 'bullet';

不幸的是,我收到了以下错误,

ERROR 1045 (#2800): near "grant": syntax error

如果我错了,请纠正我。

我应该使用其他配置连接到 Percona XtraDB 集群吗?

【问题讨论】:

你好,安居你找到上面问题的答案了吗。 【参考方案1】:

端口 6032 用于管理 CLI。 相反,您希望连接到端口 6033,该端口侦听所有流量并对后端 PXC 节点进行负载平衡。 祝你好运!

【讨论】:

您好,请告诉我在使用端口 6033 连接到 proxysql 时我们应该提供什么用户和密码,以及如何创建该用户并拥有所有权限 ProxySQL 在身份验证方面充当中间人。必须在 ProxySQL 本身的 mysql_users 表中创建数据库用户。 ProxySQL 只需要用户名和密码(可以是纯文本,或者更好的是散列)。应用程序将使用用户名和密码连接到 ProxySQL 进行身份验证。然后 ProxySQL 将使用相同的用户和密码来创建到后端服务器的连接。权限仅在 MySQL 端进行测试。本 ProxySQL 教程 (severalnines.com/resources/tutorials/…) 中的更多内容。

以上是关于如何从应用程序连接到 ProxySQL的主要内容,如果未能解决你的问题,请参考以下文章

如何从 .NET 应用程序连接到 SQL Server Compact?

如何从 Jython 连接到数据库

如何从 GoLang 应用程序连接到 Bigtable Emulator?如何使用它?

ProxySQL The Admin Schemas

如何从 JavaScript 连接到 MySQL?

如何从 Java 程序连接到 phpMyAdmin 数据库?