gpt4 book ai didi

MYSQL InnoDB Cluster 连接字符串参数

转载 作者:行者123 更新时间:2023-12-05 05:53:56 27 4
gpt4 key购买 nike

我已经设置了 MySQL InnoDB Cluster 最新版本 (8.0.27),其中包含三个节点和一个主节点。我有一个 VB 脚本和连接字符串。当前连接字符串如下:

jdbc:mysql://node1,node2,node3;db=test?multi_host=true

假设我的主节点 1 出现故障,R/W 访问将传递到成为主节点的节点 2 或节点 3。在此期间,我的连接字符串将无法工作,因为它试图连接到第一个节点并失败。是否有任何其他参数可以在连接字符串中传递来处理此类问题?连接字符串如何知道哪个节点是主节点并连接到它。

谢谢。

最佳答案

InnoDB Cluster 通常以单主模式运行,具有一个主实例(读写)和多个从实例(只读)。

为了让客户端应用程序处理故障转移,它们需要了解 InnoDB 集群拓扑。他们还需要知道哪个实例是主实例。虽然应用程序可以实现该逻辑,但 MySQL Router 可以为您提供此功能。

shell> mysqlrouter --bootstrap root@localhost:3310

MySQL Router 连接到 InnoDB 集群,获取其元数据并配置自身以供使用。生成的配置会创建 2 个 TCP 端口:一个用于读写 session (将连接重定向到 PRIMARY),一个用于只读 session (将连接重定向到其中一个 SECONDARY 实例)。

引导和配置后,启动 MySQL Router(或为其设置服务以在系统启动时自动启动):

shell> mysqlrouter &

您现在可以将 MySQL 客户端(例如 MySQL Shell)连接到传入的 MySQL 路由器端口之一,并查看客户端如何透明地连接到 InnoDB 集群实例之一。

shell> mysqlsh --uri root@localhost:6442

但是,当主节点出现故障时,只能读取数据而不能写入。如果你想写入工作,请参阅 MySql 的高可用性和多主集群。

参见 this了解更多详情。

关于MYSQL InnoDB Cluster 连接字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69786474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com