我正在尝试使用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
客户端进行连接,并验证连接详细信息是否正确。
任何提示或可行的示例都将非常有帮助。
答案 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
来引用表。