使用Perl连接到AWS Managed Cassandra

时间:2020-04-23 06:51:24

标签: perl cassandra amazon-keyspaces

我正在尝试使用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客户端进行连接,并验证连接详细信息是否正确。

任何提示或可行的示例都将非常有帮助。

1 个答案:

答案 0 :(得分: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来引用表。