我正在尝试使用 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 从底层数据结构访问值?
ios - 如何在 SwiftUI 中更新 TextField 的值?
vba - 在 64 位 VBA 中使用 TaskDialogIndirect
python - 为什么在 Python 中从不同路径调用类时 __class__ 不同?
angular - JSDom karma Angular 设置