使用neo4j-python-driver 5.3.0无法连接Neo4j求助
解决neo4j-python-driver 5.3.0连接Neo4j的SSL证书验证问题
问题诊断
你遇到的SSLCertVerificationError本质是neo4j-python-driver自身的SSL验证逻辑独立于urllib3,所以禁用urllib3警告完全无效。另外你的连接代码里存在明显语法错误:认证参数的用户名前多了个逗号,这也会导致连接失败。
解决方案
1. 修正认证参数的语法错误
你的代码中auth=(',username', '<password')里的用户名前多了冗余逗号,先修正这个基础错误:
driver = GraphDatabase.driver('bolt+s://<URI>:7687', auth=('username', 'password'))
2. 让驱动信任所有SSL证书(开发环境适用)
针对SSL证书验证失败问题,直接在驱动初始化时添加trust_all_certificates=True参数,跳过证书验证:
from neo4j import GraphDatabase # 初始化连接,信任所有证书 driver = GraphDatabase.driver( 'bolt+s://<URI>:7687', auth=('username', 'password'), trust_all_certificates=True ) query = 'match (n:Event{name:"test"}) return n' with driver.session() as session: info = session.run(query) for item in info: print(item)
注意:该方法仅适合开发/测试环境,生产环境建议配置合法SSL证书并启用正常验证。
3. 检查Neo4j数据库的连接配置
如果上述方法仍无效,确认Neo4j的核心配置:
- 打开Neo4j Desktop,找到对应数据库,点击「Manage」→「Settings」
- 确保
dbms.connector.bolt.enabled设置为true - 确保
dbms.connector.bolt.listen_address设置为:7687(默认端口) - 如果是远程连接,确保
dbms.default_listen_address设置为0.0.0.0(允许所有IP访问)
4. 切换为非加密连接(仅本地测试)
如果你的Neo4j是本地运行且未配置SSL,可直接使用bolt://协议代替bolt+s://,无需处理证书:
driver = GraphDatabase.driver('bolt://<URI>:7687', auth=('username', 'password'))
内容的提问来源于stack exchange,提问作者Tono Kuriakose
相关产品推荐
相关产品推荐

