1

我正在配置一个 3 节点 Cassandra 集群(多数据中心)并且一切正常,直到我设置身份验证过程,从 AllowAllAuthenticator 设置为 PasswordAuthenticator,如 Cassandra 的文档中所定义。

问题是,一旦我更改并重新启动节点,我将无法再访问数据库,在这种情况下使用 cassandra 超级用户,显示以下消息:

Connection error: ('Unable to connect to any servers', {'10.0.0.10': AuthenticationFailed('Failed to authenticate to 10.0.0.10: Error from server: code=0100 [Bad credentials] message="Unable to perform authentication: Cannot achieve consistency level QUORUM"',)})

值得一提的是,在设置身份验证器之前,我已经将 system_auth 更新为 NetworkTopologyStratety,设置了每个节点。

此外,如果没有身份验证,所有复制都可以正常工作,这意味着集群运行良好。

有人对此有什么想法吗?这真的让我发疯,一旦我没有找到任何关于它的参考。

一切顺利!

4

1 回答 1

2

我的猜测是,您需要在“system_auth”的所有节点上运行修复,如果您正在运行 DSE,请确保任何以“dse”开头且具有“简单策略”的密钥空间都更新为网络拓扑策略适当的 DC 和 RF 设置 - 并在每个节点上运行修复。

那应该可以解决您的问题。我的猜测是您创建了用户,然后更新了密钥空间以使用网络拓扑。完成后,任何新记录都将被正确传播,但现有记录需要修复以“扇出”,因为它不会自行发生。

-吉姆

于 2019-12-31T14:25:42.477 回答