我正在使用3节点cassandra 2.1.14并使用身份验证器:PasswordAuthenticator。
但是当尝试通过以cassandra / cassandra身份登录来创建用户时。在设置中有什么我需要解决的问题吗?
卡桑德拉@ cqlsh>使用密码创建用户测试' test'超级用户;
SERVERERROR:
消息="了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的卡桑德拉-2.1.14.jar:2.1.14] 在org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:260) 〜[Apache的卡桑德拉-2.1.14.jar:2.1.14] 在org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:122) 〜[Apache的卡桑德拉-2.1.14.jar:2.1.14] at org.apache.cassandra.transport.Message $ Dispatcher.channelRead0(Message.java:439) [Apache的卡桑德拉-2.1.14.jar:2.1.14] 在org.apache.cassandra.transport.Message $ Dispatcher.channelRead0(Message.java:335) [Apache的卡桑德拉-2.1.14.jar:2.1.14] 在io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [网状-全4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [网状-全4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.access $ 700(AbstractChannelHandlerContext.java:32) [网状-全4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext $ 8.run(AbstractChannelHandlerContext.java:324) [网状-全4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) [NA:1.8.0_77] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService $ FutureTask.run(AbstractTracingAwareExecutorService.java:164) [Apache的卡桑德拉-2.1.14.jar:2.1.14] 在org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [Apache的卡桑德拉-2.1.14.jar:2.1.14] 在java.lang.Thread.run(Thread.java:745)[na:1.8.0_77]
答案 0 :(得分:1)
我试图将整个环一次滚动到PasswordAuthenticator时遇到了这个问题。不知道为什么它不能实现本地的,但我回滚到只有一个启用auth的节点并且能够继续。
所以回滚,在一个节点上启用PasswordAuthentication,创建新帐户,在system_auth上更新复制(到所有节点),设置并忘记你的cassandra密码,然后滚动重启,在其余的环上启用auth。