我正在学习并刚刚设置了我的cassandra集群,并尝试使用Python作为客户端与其交互。在yaml中,我将认证器设置为PasswordAuthenticator。
现在我计划将我的用户名和密码提供给连接函数,但找不到放置它们的地方。
cluster = Cluster(hosts)
session = cluster.connect(keyspace)
基本上,您只提供主机和键空间。文档有点暗示了一个匿名连接?http://datastax.github.io/python-driver/getting_started.html#connecting-to-cassandra
如果我只使用示例,将会得到以下错误。
raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'hou722067': AuthenticationFailed('Remote end requires authentication.',)})
认证信息是通过某些配置文件提供的吗?这似乎是一个非常基本的功能,我无法想象它不在Python客户端驱动程序中涵盖。我一定漏掉了什么。
简而言之,我的问题是:如何使用Python登录到Cassandra?
提前感谢任何可能的提示!
================================================= 明白了。
我应该在auth_provider字段中提供用户名和密码,这是一个返回包含‘username’和‘password’键和适当字符串值的字典的函数。
像这样:
def getCredential(self, host):
credential = {'username':'myUser', 'password':'myPassword'}
return credential
cluster = Cluster(nodes, auth_provider=getCredential)