如何从应用程序连接到 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?