3

我正在尝试使用 Perl 连接到 AWS Managed Cassandra。由于一个模糊的错误,它不起作用Error 0: Internal Server Error

使用DBD::Cassandra库,我可以连接到自托管的 Cassandra 集群,但不能连接到 AWS Cassandra。我认为我的 AWS Root CA 是正确的,因为它通过openssl s_client -connect cassandra.us-east-1.amazonaws.com:9142

DBI->connect("dbi:Cassandra:host=cassandra.us-east-1.amazonaws.com;port=9142;tls=1;keyspace=keyspace",
 "**username**", "**password**");

来自连接的错误响应是

Unable to connect to any Cassandra server. 
  Last error: On cassandra.us-east-1.amazonaws.com: 
  Error 0: Internal Server Error

我也可以使用cqlsh客户端连接并验证连接详细信息是否正确。

任何提示或工作示例都会非常有帮助。

4

1 回答 1

0

问题似乎是设置键空间。在连接上或随后执行此操作会use keyspace导致Error 0: Internal Server Error服务器响应。

另请注意,AWS Managed Cassandra 仅支持一致性local_quorum。以下将导致有效的连接:

DBI->connect("dbi:Cassandra:host=cassandra.us-east-1.amazonaws.com;
   port=9142;tls=1;consistency=local_quorum",
   "**username**", "**password**");

由于设置键空间存在问题,因此必须keyspace.tablename在查询中使用表来引用。

于 2020-04-24T03:46:59.287 回答