AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 335187
Accepted
adinas
adinas
Asked: 2024-01-25 17:50:11 +0800 CST2024-01-25 17:50:11 +0800 CST 2024-01-25 17:50:11 +0800 CST

Cassandra 登录 - 身份验证失败...无法执行身份验证:无法达到一致性级别 LOCAL_QUORUM

  • 772

摘要:我有一个 2 节点集群,如果其中一个节点发生故障,我将无法登录。我收到错误。

Connection error: ('Unable to connect to any servers', {'192.168.1.104:9042': AuthenticationFailed('Failed to authenticate to 192.168.1.104:9042: Error from server: code=0100 [Bad credentials] message="Unable to perform authentication: Cannot achieve consistency level LOCAL_QUORUM"')})
  • 我正在使用我创建的角色(不是 SUEPRUSER,因此 SUPERUSER 始终使用 QUORUM 的问题不应适用于此。根据我的阅读,它应该使用 LOCAL_ONE 但不是!
  • 我特意将system_auth键空间复制设置为 2,因为建议这样做不会出现单点故障。

这是一个屏幕截图,显示我没有使用 cassandra SUPERUSER 但收到错误: 在此输入图像描述

我希望即使一个节点发生故障,登录也能继续工作。

cassandra
  • 2 2 个回答
  • 47 Views

2 个回答

  • Voted
  1. Madhavan
    2024-01-26T21:02:59+08:002024-01-26T21:02:59+08:00

    首先,对于仲裁级别而言,2 节点集群并不是一个好的复制设置,因为 RF=2 的仲裁值始终为 (2/2)+1=2。每个副本节点放置在自己的机架中的 RF=3 始终是首选的起始设置,但我们现在将讨论放在一边。

    您可以通过 CQLSH 选项强制一致性级别,如下所示,

    bin/cqlsh host:port --username=<user_name> --password=<password> --debug 
    

    然后利用CONSISTENCY LOCAL_ONE;shell 内部的功能将使您能够达到读取一致性级别。

    我可以看到Cassandra® 的默认 CQLSH 一致性级别位于LOCAL_ONE4.1.3此处,除非您在其他地方重新配置它。

    • 1
  2. Best Answer
    Mário Tavares
    2024-01-30T01:07:06+08:002024-01-30T01:07:06+08:00

    当你说“从我读到的内容来看,它应该使用 LOCAL_ONE 但不是!”时,你是正确的。

    我发现 Cassandra 4.0 和 4.1 的官方安全文档都已过时,因为缺少 Cassandra 4.0 中引入的身份验证一致性更改。

    在 NEWS.txt 中,您可以找到有关 Cassandra 4.0“新功能”部分的以下内容:

    身份验证读取和写入已从 ONE、LOCAL_ONE 和 QUORUM 的混合更改为读取时的 LOCAL_QUORUM 和写入时的 EACH_QUORUM。这可以通过 cassandra.yaml 分别使用 auth_read_consistency_level 和 auth_write_consistency_level 进行配置。请参阅 CASSANDRA-12988。

    在 cassandra.yaml 的 Apache Cassandra 文档中,您可以找到针对system_auth键空间的读取(LOCAL_QUORUM) 和写入(EACH_QUORUM)的默认一致性。

    好消息是,您可以在cassandra.yaml中配置相应的一致性级别,或者至少将auth_read_consistency_level设置为LOCAL_ONE(检查上面的读取和写入链接),重新启动节点,然后您应该能够进行身份验证cqlsh。

    附带说明一下,并非所有超级用户都使用 QUORUM 登录(或习惯)。至少在 Cassandra 4 之前,只有“cassandra”超级用户使用 QUORUM。所有剩余用户(超级用户或其他用户)均使用 LOCAL_ONE 进行身份验证。我还没有测试它,但从 NEWS.txt 更新中我假设 yaml 中配置的一致性也适用于从 Cassandra 4 开始的“cassandra”超级用户。

    • 1

相关问题

  • 具有 1 个外部 IP 的 Cassandra 多数据中心配置

  • 迁移中的 Cassandra 升级/修复问题

  • Cassandra cqlsh 浏览器查询只能以字节为单位

  • 在 Cassandra 中使用许多(数千个)列族或键空间会有什么后果?

  • Cassandra 静态加密

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve