【问题标题】:How do I work with different graph databases using the Bolt neo4j python?如何使用 Bolt neo4j python 处理不同的图形数据库?
【发布时间】:2016-07-21 18:23:56
【问题描述】:

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

【问题讨论】:

    标签: python neo4j


    【解决方案1】:

    如果您对同一主机使用两个加密连接,您将遇到 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文件。但是,如果您同时使用两者,这将导致大量开销。如果两个数据库都在不同的主机上运行,​​你也应该没问题。除此之外,我对处理证书等不太了解。也许有一种方法可以告诉驱动程序哪个端口上的哪个数据库属于哪个证书。

    【讨论】:

    • 非常感谢。这非常有用。请让我知道推荐的步骤(对于傻瓜)以最简单的方式打开并开始一项新工作以避免调整(前提是我已经有了点子流动)。例如: 1. 打开 Neo4J 2. 打开 Python IDE 3. 导入 GraphDatabase 模块 4. 等等 非常感谢。
    • 每台主机只使用一个数据库。你必须自己弄清楚如何打开一个 IDE,这不是 Stack Overflow 的重点......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多