【问题标题】:Cassandra CQL missing EOFCassandra CQL 缺少 EOF
【发布时间】:2016-04-27 16:53:20
【问题描述】:
Drop keyspace if exists actionable;
CREATE KEYSPACE if not exists actionable WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

我收到此错误 cassandra.protocol.SyntaxException: :0 missing EOF at 'CREATE' (... if exists "actionable";

找不到太多关于它的文档。但是如果我单独执行每个语句,它就可以工作。是不是脚本文件有问题?

【问题讨论】:

  • 您提到“如果我单独执行每条语句,它就会起作用”;如果不是一一执行,您是如何执行这些语句的?
  • 从 .cql 文件运行

标签: cassandra cql3


【解决方案1】:

您使用的是哪个版本的 Cassandra?

因为我测试了你的脚本并且它对我有用,所以我使用的是 Cassandra 3.5:

% cat /tmp/test.cql                                                                                                                                                   
Drop keyspace if exists actionable;
CREATE KEYSPACE if not exists actionable WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

% cqlsh -f /tmp/test.cql                                                                                                                          

% cqlsh --cqlversion=3.4.2 -e 'describe keyspace actionable'                                                                                                          

CREATE KEYSPACE actionable WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

检查你的脚本文件,看看是否有隐藏的换行符/换行符或类似的东西

【讨论】:

  • 3.3 卡桑德拉。可能是换行符。会注意的。