【发布时间】:2018-03-09 05:32:48
【问题描述】:
我正在尝试从一台新机器连接到我的 Neo4j 图形数据库服务器。我可以从旧机器成功连接,但不想再使用旧机器。
我已将问题简化为一个返回异常的简单脚本:
from neo4j.v1 import GraphDatabase, basic_auth
auth = basic_auth("username","password")
session = GraphDatabase.driver("bolt://remote.server:7687",auth=auth).session()
statement = """MATCH (a:Protein)
WHERE a.name={name}
RETURN a.Accession"""
tx = session.begin_transaction()
record = tx.run(statement,{'name':"ARCH_HUMAN"}).single()
print record['a.Accession']
session.close()
错误信息是:
File "Test.py", line 10, in <module>
tx = session.begin_transaction()
File "/home/username/anaconda2/lib/python2.7/site-packages/neo4j/v1/api.py", line 432, in begin_transaction
self._connect()
File "/home/username/anaconda2/lib/python2.7/site-packages/neo4j/v1/api.py", line 269, in _connect
self._connection = self._acquirer(access_mode)
File "/home/username/anaconda2/lib/python2.7/site-packages/neo4j/v1/direct.py", line 52, in acquire
raise ServiceUnavailable("Cannot acquire connection to {!r}".format(self.address))
neo4j.exceptions.ServiceUnavailable: Cannot acquire connection to Address(host='remote.server', port=7687)
端口 7687 已打开(通过 netstat -tulpn 和 iptables -L 确认),neo4j 配置为监听 0.0.0.0:7687。此外,.neo4j/known_hosts 包含主机 0.0.0.0 的条目
奇怪的是,如果我使用不正确的密码破坏了身份验证,我会收到不同的错误消息 (neo4j.exceptions.AuthError)。所以连接 是为了检查密码,但我仍然无法连接正确的身份验证。
发生了什么事?
【问题讨论】:
-
有一个similar question,没有接受的答案。
-
@cybersam 这个问题似乎是指定端口号,这里有
-
我发现如果我从 neo4j-driver v1.5.3 降级到 v1.1.0b1 上面的脚本可以工作。我不会将此添加为接受它的答案,因为我喜欢最新版本的答案