如何使用Bolt neo4j python处理不同的图形数据库?

时间:2016-07-21 04:27:43

标签: python neo4j

我使用Python Neo4j Bolt的测试成功了。在测试期间,我打开了一个图形数据库(让我们称之为“First.graphdb”)。然后我打开另一个python文件,想打电话给neo4j。这次我打开了另一个图形数据库(让我们称之为“Second.graphdb”)我无法通过。我如何知道我正在使用/更新哪个图形数据库?

1 个答案:

答案 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文件。但是,如果同时使用两者,这将导致大量开销。如果两个数据库在不同的主机上运行,​​您也应该没问题。除此之外我对处理证书等问题并不是很了解。也许有办法告诉司机哪个端口属于哪个数据库哪个证书。