使用Llama3构建PropertyGraphIndex连接Neo4j时遇ConnectError求助
解决LlamaIndex连接Neo4j Desktop的ConnectError问题
核心排查与修复步骤
严格匹配连接参数
打开Neo4j Desktop对应数据库的「Details」面板,核对以下参数:- 协议:默认是
neo4j+s(加密连接),未开启加密则用neo4j或bolt - 端口:Bolt端口默认7687,确保代码中端口与面板显示一致
- 用户名/密码:必须和数据库设置的凭据完全匹配,注意大小写
示例正确配置:
from llama_index.graph_stores.neo4j import Neo4jGraphStore graph_store = Neo4jGraphStore( username="neo4j", password="你的数据库密码", url="neo4j+s://localhost:7687", database="neo4j" # 若自定义了数据库名需对应修改 )- 协议:默认是
排查系统防火墙拦截
Windows Defender防火墙或第三方杀毒软件可能拦截LlamaIndex对7687端口的请求。临时关闭防火墙测试,或手动添加允许Python进程通过防火墙的规则。确认APOC配置权限
进入Neo4j数据库的「Settings」面板,搜索并确认以下配置已开启:dbms.security.procedures.unrestricted=apoc.* dbms.security.procedures.allowlist=apoc.*修改后重启数据库生效。
验证版本兼容性
- 升级LlamaIndex到最新稳定版:
pip install --upgrade llama-index llama-index-graph-stores-neo4j - Neo4j Desktop建议使用4.4.x或5.x稳定版,避免老旧版本的兼容性问题
- 升级LlamaIndex到最新稳定版:
直接测试Bolt连接
用Neo4j官方Python包测试基础连接,排除LlamaIndex层面问题:from neo4j import GraphDatabase driver = GraphDatabase.driver("neo4j+s://localhost:7687", auth=("neo4j", "你的密码")) with driver.session() as session: result = session.run("RETURN 1 AS num") print(result.single()["num"]) driver.close()若这段代码报错,聚焦基础连接问题排查;若正常,检查LlamaIndex的GraphStore配置是否有误。
常见错误点
- 混淆浏览器HTTP端口(7474)与Bolt端口(7687)
- 开启Neo4j加密连接但代码用了非加密协议(如
bolt://而非neo4j+s://) - 数据库密码含特殊字符时未正确用双引号包裹字符串
内容的提问来源于stack exchange,提问作者Kcndze
相关产品推荐
相关产品推荐

