无法使用neo4j python驱动程序连接NEO4J

问题描述 投票:0回答:3

我无法使用 neo4j-python-driver 版本 5.3.0 连接到 Neo4j。 要求是使用 Neo4j python 驱动程序使用 cypher 查询来查询 NEO4J DB。 即使数据库已启动并运行并且我可以通过 NEO4J Desktop 登录和使用,它也会出现无法连接到服务器的错误。 出现以下错误

neo4j.exceptions.ServiceUnavailable: Couldn't connect to <URI>:7687 (resolved to ()):
[SSLCertVerificationError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 1: Operation not permitted)

注意:上面的错误中隐藏了 URI。

我已经添加了忽略证书验证问题的例外,但它并不能解决问题。

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

感谢您帮助解决问题。

我通过下面的代码片段连接

from neo4j import GraphDatabase
import urllib3

#Ignores certificate verification issue
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


# Initialize connection to database
driver = GraphDatabase.driver('bolt+s://<URI>:7687', auth=(',username', '<password'))


query = 'match (n:Event{name:"test"}) return n'

#Run Cypher query
with driver.session() as session:
    info = session.run(query)
    for item in info:
        print(item)
python python-3.x neo4j cypher neo4j-python-driver
3个回答
1
投票

无法知道您是如何连接的,但我们知道:

from neo4j import GraphDatabase
address="bolt://localhost:7687"
auth=('neo4j', "password")
driver = GraphDatabase.driver(address, auth=auth, encrypted=False)
....

0
投票

你尝试过py2neo吗? 我在下面使用在 docker 中运行的 dev 和运行 Aura 的 prod。

from py2neo import Graph
self.graph = Graph(os.getenv('DB_URI'), auth=(
            os.getenv('DB_USER'), os.getenv('DB_PASS')))

开发时的 DB_URI 为“neo4j://0.0.0.0:7687” 和产品上的“neo4j+s://xxxx”


0
投票

发生这种情况的原因之一是运行不同的服务器。例如,如果您在本地计算机上运行 neo4j 并从 google-colab 访问此数据库(这本质上是与本地主机不同的服务器),您可能会遇到此错误,就像我的情况一样。要解决此问题,请确保您的本地主机实际上是本地主机。一种方法是制作一个 python 脚本并在本地运行。它将解决这个问题。记得 colab 表演

[error 111]

第二种方法是复制地址。您还可以查看

ngrok
这里,这可能会帮助您冒充IP。

© www.soinside.com 2019 - 2024. All rights reserved.