问题描述
我需要一个脚本,需要使用python脚本用密码连接CassDb节点
我尝试了波纹管脚本
from cassandra.auth import PlainTextAuthProvider
from cassandra.cluster import Cluster
ap = PlainTextAuthProvider(username='##',password='##')
cass_contact_points=['cassdb01.p01.eng.sjc01.com','cassdb02.p01.eng.sjc01.com']
cluster = Cluster(cass_contact_points,auth_provider=ap,port=50126)
session = cluster.connect('##')
我遇到了以下错误:
File "C:\python35\lib\site-packages\cassandra\cluster.py",line 2792,in _reconnect_internal
raise NoHostAvailable("Unable to connect to any servers",errors)cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers',{'10.44.67.92': OperationTimedOut('errors=None,last_host=None'),'10.44.67.91': OperationTimedOut('errors=None,last_host=None')})
解决方法
我看到了两个潜在的问题。
首先,除非您处于升级方案中,或者您曾经遇到过协议版本问题,否则我将不指定。驱动程序应协商该值。例如,对于Cassandra 3.x,将其设置为2
将会失败。
第二,我认为驱动程序无法从端点正确解析出端口。
node_ips = ['cassdb01.p01.eng.sjc01.com:50126','cassdb02.p01.eng.sjc01.com:50126']
当我将端口和端点一起传递时,也会遇到类似的故障。所以我会尝试将该行更改为此:
node_ips = ['cassdb01.p01.eng.sjc01.com','cassdb02.p01.eng.sjc01.com']
尝试从此开始。我还有其他想法,但让我们将这两个明显的设置排除在外。