使用Neo4jGraph无法连接Neo4j数据库,GraphDatabase.driver可正常连接
解决WSL下Neo4jGraph无法连接Neo4j的问题
可能的原因及修复步骤
1. 升级依赖包版本
旧版的langchain或langchain-community包可能存在连接兼容性问题,执行命令更新相关依赖:
pip install --upgrade langchain langchain-community neo4j
2. 调整Neo4jGraph连接参数
- 显式指定数据库名称(默认是
neo4j,但明确声明可避免隐式配置问题):graph = Neo4jGraph( url="bolt://localhost:7687", username="neo4j", password="neo4j", database="neo4j" ) - 若WSL与主机网络隔离导致
localhost映射失效,替换为主机的局域网IP(比如192.168.x.x):graph = Neo4jGraph( url="bolt://192.168.x.x:7687", username="neo4j", password="neo4j" )
3. 检查Neo4j的Bolt服务配置
打开Neo4j配置文件neo4j.conf,确保以下配置未被注释,修改后重启Neo4j:
dbms.connector.bolt.enabled=true dbms.connector.bolt.listen_address=0.0.0.0:7687
4. 验证WSL端口访问能力
在WSL终端执行命令,测试7687端口是否可访问:
telnet localhost 7687
若连接失败,在Windows管理员命令提示符中添加端口转发规则(172.x.x.x为WSL内部IP,可通过ip addr在WSL终端查看):
netsh interface portproxy add v4tov4 listenport=7687 listenaddress=0.0.0.0 connectport=7687 connectaddress=172.x.x.x
5. 简化代码测试基础连接
先排除后续查询逻辑干扰,仅测试Neo4jGraph的连接有效性:
from langchain_community.graphs import Neo4jGraph graph = Neo4jGraph( url="bolt://localhost:7687", username="neo4j", password="neo4j" ) # 打印节点标签验证连接 print(graph.schema.node_labels)
内容的提问来源于stack exchange,提问作者Mathys Ferrato
相关产品推荐
相关产品推荐

