私はCassandra 3.9を使用しています。SUPERUSERは他の地域に伝播しません
AWSには2つのデータセンターがあります。
各データセンターには、データベースサーバーとして3つのノードが含まれています。
CREATE USER 'hello' WITH PASSWORD 'world' SUPERUSER
を実行して1つのノードにスーパーユーザーを作成したときに、次のエラーが発生しました。私はLIST USERS
を実行したとき
NoHostAvailable:
しかし、十分に面白い、ユーザーhello
は、スーパーユーザーとしてリストされている、と私は、このユーザー名とパスワードを使用してcqlshにログインすることができます。
同じデータセンター内の他の2つのノードでcqlshにログインできますが、他のデータセンターのいずれのノードでもcqlshにログインできません。すべてがこれらの2つのデータセンターに伝播されるべきなので、これは私にとって非常に奇妙です。私は、すべてのデータユーザーの入力が問題なくこれらのデータセンター全体に伝播することを強調したいと思います。では、スーパーユーザーはなぜ伝播しないのですか?
他のデータセンターでcqlshにログインしようとすると、次のエラーが発生しました。
Connection error: ('Unable to connect to any servers', {'172.51.11.232': AuthenticationFailed('Failed to authenticate to 172.51.11.232: Error from server: code=0100 [Bad credentials] message="org.apache.cassandra.exceptions.UnavailableException: Cannot achieve consistency level LOCAL_ONE"',)})
これらのデータセンター間では特に変更はありませんでした。
私は、私はすべてのcassandra.yamlファイルにCassandraAuthorizer
にPasswordAuthenticator
とauthorizer
にauthenticator
を設定し、これら2つのデータセンターを通じて、すべてのノードでカサンドラを再起動することを確認しました。
私は何か提案をいただきありがとうございます。
更新: DESCRIBE KEYSPACE system_auth
を実行した結果を次に示します。
CREATE KEYSPACE system_auth WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;
'system_auth'の複製戦略はどうですか? 'DESCRIBE KEYSPACE system_auth'。 –
私の投稿を更新しました。キースペースに何か間違っていると思いますか? – tet
はい、私の答えを見てください。私は質問の出力の最初の行だけを保持します。 –