更改键空间以更改策略 class 在 cassandra-cli 中不起作用

Altering keyspace to change strategy class is not working in cassandra-cli

我尝试在 cassandra 1.1.6 版本的 cassandra-cli 中使用以下命令使用策略 class 和选项更改键空间,但它显示“位置 0 处的语法错误:输入时没有可行的选择 'ALTER'.

ALTER KEYSPACE system_auth WITH REPLICATION =
  {'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 2};

这里有什么问题?

UPDATE KEYSPACE demo 
WITH placement_strategy = 'NetworkTopologyStrategy'  
AND strategy_options = {'dc1' : 3, 'dc2' : 2};

正在发生的事情是,您正在使用 CQL 语法从(已弃用的)cassandra-cli 工具中更新键空间。如果您使用的是 cqlsh 工具,您的命令就可以正常工作。但是对于 cassandra-cli,这是行不通的。正如 Yasmeen 所指出的,您要使用的正确语法是 UPDATE KEYSPACE:

UPDATE KEYSPACE system_auth with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options = {'dc1' : 3, 'dc2' : 2};

我建议您以后使用 cqlshcassandra-cli 已弃用,将不会收到任何进一步的更新。

此外,您还应该了解如何将集群升级到更新版本的 Cassandra。虽然您错过了几个新功能,但自 1.1.6 以来已经修复了许多错误(您可能 运行 遇到的错误)。