[英]Cannot acquire connection to Neo4j database
我正在嘗試從新計算機連接到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)。 因此,連接正在做檢查密碼,但我仍然不能正確連接權威性。
這是怎么回事?
我也遇到了同樣的問題,原來驅動程序就是問題。
我做了一些實驗,發現它適用的最后一個驅動程序是neo4j-driver==v1.1.0
但是下一個版本neo4j-driver==v1.2.0
出於某種原因它停止工作。
嘗試取消注釋dbms.connectors.default_listen_address=0.0.0.0
並檢查它
# Bolt connector
dbms.connector.bolt.enabled=true
dbms.connector.bolt.tls_level=OPTIONAL
dbms.connector.bolt.listen_address=:7687
# HTTP Connector. There must be exactly one HTTP connector.
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
# HTTPS Connector. There can be zero or one HTTPS connectors.
dbms.connector.https.enabled=true
dbms.connector.https.listen_address=:7473
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.