我使用Python Neo4j Bolt的测试成功了。在测试期间,我打开了一个图形数据库(让我们称之为“First.graphdb”)。然后我打开另一个python文件,想打电话给neo4j。这次我打开了另一个图形数据库(让我们称之为“Second.graphdb”)我无法通过。我如何知道我正在使用/更新哪个图形数据库?
答案 0 :(得分:0)
如果您使用两个加密的连接到同一主机,您将遇到SSL证书问题。
如果您执行以下操作,您将收到ProtocolError
,表明第二个连接的服务器证书与第一个连接的已知证书不匹配:
from neo4j.v1 import GraphDatabase, basic_auth
g1 = GraphDatabase.driver('bolt://localhost:7687')
with g1.session() as s:
s.run('MATCH (a) RETURN a')
g2 = GraphDatabase.driver('bolt://localhost:7787')
with g2.session() as s:
s.run('MATCH (a) RETURN a')
错误消息是:
ProtocolError: Server certificate does not match known certificate for 'localhost';
check details in file '/Users/someuser/.neo4j/known_hosts'
如果您使用未加密的连接(通过将encrypted=False
添加到driver()
),则可以使用。
简单的解决方案是在使用第一个数据库后删除known_hosts
文件。但是,如果同时使用两者,这将导致大量开销。如果两个数据库在不同的主机上运行,您也应该没问题。除此之外我对处理证书等问题并不是很了解。也许有办法告诉司机哪个端口属于哪个数据库哪个证书。