【问题标题】:Cassandra error: "Cannot achieve consistency level LOCAL_ONE" during user creationCassandra 错误:用户创建期间“无法达到一致性级别 LOCAL_ONE”
【发布时间】:2016-10-29 03:10:26
【问题描述】:

我正在使用 3 节点 cassandra 2.1.14 并使用身份验证器:PasswordAuthenticator。

但是当尝试通过以 cassandra/cassandra 身份登录来创建用户时。我需要在设置中解决什么问题吗?

cassandra@cqlsh> 使用密码“test”超级用户创建用户测试;

服务器错误:

message="java.lang.RuntimeException: org.apache.cassandra.exceptions.UnavailableException:无法实现 一致性级别 LOCAL_ONE">

系统日志显示:

错误 [SharedPool-Worker-1] 2016-06-27 07:17:36,538 ErrorMessage.java:251 - 请求期间出现意外异常 java.lang.RuntimeException: org.apache.cassandra.exceptions.UnavailableException:无法实现 一致性级别 LOCAL_ONE 在 org.apache.cassandra.auth.Auth.selectUser(Auth.java:276) ~[apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.auth.Auth.isExistingUser(Auth.java:86) ~[apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.cql3.statements.CreateUserStatement.validate(CreateUserStatement.java:55) ~[apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:236) ~[apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:260) ~[apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:122) ~[apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.14.jar:2.1.14] 在 io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4.0.23.Final] 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [netty-all-4.0.23.Final.jar:4.0.23.Final] 在 io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4.0.23.Final] 在 io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4.0.23.Final] 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_77] 在 org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.14.jar:2.1.14] 在 org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.14.jar:2.1.14] 在 java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]

【问题讨论】:

  • 你能分享你的表架构吗? nodetool status 打印什么?

标签: cassandra


【解决方案1】:

我在尝试一次将整个戒指滚动到 PasswordAuthenticator 时遇到了这个问题。不知道为什么它无法获取本地节点,但我回滚到只有一个启用了身份验证的节点并且能够继续。

所以回滚,在一个节点上启用 PasswordAuthentication,创建您的新帐户,更新 system_auth 上的复制(到所有节点),设置并忘记您的 cassandra 密码,然后在环的其余部分进行滚动重启启用身份验证。

【讨论】:

    猜你喜欢
    • 2018-08-14
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2015-10-27
    • 2016-03-17
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多