2017-07-03 47 views
0

我正在運行單個節點。我正在嘗試爲Cassandra啓用密碼驗證。Cassandra - 無法達到一致性水平QUORUM

我按照本指南:http://cassandra.apache.org/doc/latest/operating/security.html#password-authentication

我會注意到,我沒有改變system_auth的複製,因爲它是一個單節點集羣。

我編輯cassandra.yaml使用authenticator: PasswordAuthenticator

我然後重新卡桑德拉和嘗試的命令cqlsh -u cassandra -p cassandra,但給我的錯誤:

Connection error: ('Unable to connect to any servers', 
{'127.0.0.1': AuthenticationFailed(u'Failed to authenticate to 127.0.0.1: 
code=0100 [Bad credentials] message="org.apache.cassandra.exceptions. 
UnavailableException: Cannot achieve consistency level QUORUM"',)}) 

我試着運行nodetool repair,但它說:Replication factor is 1. No repair is needed for keyspace 'system_auth'

如何解決這個問題?

回答

3

我設法解決了這個問題。

我必須運行ALTER KEYSPACE system_auth WITH replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };,因爲之前設置爲{'class': 'NetworkTopologyStrategy', 'DC1': '1', 'DC2': '1'},即使它是單節點羣集。

這就是爲什麼它不能實現QUORUM。

1

在1節點(或2-節點)配置QUORUM是不可能的,並且不需要修復(因爲它是用於固定節點之間數據不一致)

1

http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/sec/secConfiguringInternalAuthentication.html

用戶「卡桑德拉」總是默認情況下在system_auth中使用QUORUM。嘗試創建一個不同的用戶(作爲超級用戶),你的問題應該消失。

原因是你不能在單個節點的cluser上有QUORUM,請參閱Igors Anwser。

+0

正如伊戈爾所說 - 你無法在單個節點集羣上實現QUORUM。 – Mandraenke

+0

當我嘗試創建新用戶時,出現錯誤:'未經授權:代碼= 2100 [未經授權] message =「只有超級用戶可以創建具有超級用戶身份的角色」。這是否意味着我無法在單個節點羣集上使用密碼驗證?我最好只是在'cassandra.yaml'上監聽localhost,然後才能保護它? –

+0

如果集羣受您控制 - 您可以在cassandra.yaml中設置AllowAllAuthenticator,並在創建新的超級用戶時重新啓動節點。 你得到的那個錯誤是,你試圖創建一個超級用戶作爲普通用戶。 – Mandraenke

相關問題