perl - 使用 Perl 连接到 AWS Managed Cassandra

我正在尝试使用 Perl 连接到 AWS Managed Cassandra。由于模糊错误 错误 0:内部服务器错误,它无法正常工作。

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

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

最佳答案

问题似乎是设置键空间。在连接上或随后使用 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 引用表。

https://stackoverflow.com/questions/61380988/

相关文章:

google-app-engine - 将 AppEngine 中的传入请求路由到不同版本

reactjs - Ant Design 如何处理 Form.List 从底层数据结构访问值?

php - 超时作业挂起 15 或 30 分钟,然后运行

ios - 如何在 SwiftUI 中更新 TextField 的值?

python - 为什么输入永无止境

vba - 在 64 位 VBA 中使用 TaskDialogIndirect

python - 为什么在 Python 中从不同路径调用类时 __class__ 不同?

angular - JSDom karma Angular 设置

swiftui - 如何在 SwiftUI 中使 UIViewRepresentable 可聚焦在

javascript - 排序 mongoose-aggregate-paginate-v2 更改顺