gpt4 book ai didi

mysql复制错误: Candidate slave is missing replication user

转载 作者:行者123 更新时间:2023-11-29 13:19:57 27 4
gpt4 key购买 nike

上下文:我正在尝试设置 mysql 复制,一主一从。我在 mysql 5.6 中使用新的 GTID 方法,以及用于自动故障转移的 mysql 实用程序。

我能够设置主节点 M 和从节点 S 的复制。

我试图运行一个简单的脚本来向自己展示一切都设置正确。脚本如下:

  1. 设置复制,节点 M 作为主节点,节点 S 作为从节点
  2. 确保对 M 中的表所做的更改反射(reflect)在 S 中
  3. 关闭 M 并确保 S 接管作为新的 master
  4. 对 S 进行一些表更改
  5. 启动 M 并将其作为从属设备添加回集群
  6. 确保 M 的更新 catch S
  7. 让 M 再次成为主节点

直到最后一步,我的脚本似乎都是成功的。很大程度上,我遵循此处的步骤: http://www.clusterdb.com/mysql/replication-and-auto-failover-made-easy-with-mysql-utilities

但是当我运行“mysqlrpladmin --master=root@S_NODE --new-master=root@M_NODE --demote-master --discover-slaves-login=root switchover”时,出现以下错误:

# Discovering slaves for master at S_NODE
# Discovering slave at M_NODE
# Found slave: M_NODE
# Checking privileges.
# Performing switchover from master at S_NODE to slave at M_NODE
# Checking candidate slave prerequisites.
Candidate slave is missing replication user.
ERROR: Candidate slave is missing replication user.
# Errors found. Switchover aborted.
#
# Replication Topology Health:
+-----------------+-------+---------+--------+------------+---------+
| host | port | role | state | gtid_mode | health |
+-----------------+-------+---------+--------+------------+---------+
| S_NODE | 3306 | MASTER | UP | ON | OK |
| M_NODE | 3306 | SLAVE | UP | ON | OK |
+-----------------+-------+---------+--------+------------+---------+

我似乎找不到与该错误消息“候选从属缺少复制用户”相关的任何 google 或 stackoverflow 页面。

我相信我在节点 S 和 M 上都有一个复制用户,因为它们在我的测试脚本中一度充当从属服务器。

有什么想法吗?

最佳答案

我在一些新集群上测试故障转移时遇到了同样的问题,并注意到按照您的建议添加 --force 标志后,切换成功完成创建用户“replication_user”@“S_NODE”,而我没有任何提示。

然后我想到我设置的复制用户是“repl”@“specific_subnet_%” - 这与脚本正在寻找的内容(“repl”@“S_NODE”)不匹配,因此预-如果没有 --force,检查失败。

我正在测试另一个集群,因此为了验证我执行了以下操作:

  • 在没有 --force 的情况下运行 mysqlrpladmin ... switchover 命令(如预期失败)
  • 使用相同的授权 (REPLICATION SLAVE) 创建了 'replication_user'@'S_NODE''replication_user'@'M_NODE',并且密码作为我现有的replication_user。如果您希望能够使用此脚本在 S_NODE 和 M_NODE 主机之间来回失败,则需要同时使用 S_NODE 和 M_NODE 主机。
  • 在没有 --force 的情况下再次尝试 mysqlrpladmin ... switchover

这次真是太神奇了!

故事的寓意:脚本期望 'replication_user'@'new_master' 用户存在。 --force 标志将为您创建该用户,并且在您第一次使用它后就不再需要了。

关于mysql复制错误: Candidate slave is missing replication user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985507/

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