使用GraphDataScience从DataFrame构建GDS图时遇连接错误求助
解决GraphDataScience连接Neo4j的Connection Refused错误
你遇到的UnableToConnectError是本地Neo4j服务未正常运行或连接参数错误导致的,和你用DataFrame构建图的逻辑无关,以下是具体排查和解决步骤:
核心排查方向
- 确认Neo4j服务状态
- 核对连接地址与端口
- 检查认证配置
- 排查网络防火墙限制
1. 确认Neo4j服务正在运行
- 如果用Neo4j Desktop:打开客户端,查看对应数据库是否处于「Running」状态,未启动则点击「Start」按钮。
- 如果是命令行安装版:执行
neo4j status检查状态,未运行则执行neo4j start启动服务。 - 如果是Docker容器:执行
docker ps查看容器是否运行,未运行则执行docker start <容器ID/名称>启动。
2. 核对连接地址与端口
- Neo4j默认Bolt端口为7687,确认你的Neo4j配置未修改过端口。若自定义了端口,需同步修改代码中的连接字符串,比如:
gds = GraphDataScience("bolt://localhost:自定义端口", auth=None) - 若连接远程Neo4j,将
localhost替换为目标服务器的IP或域名,同时确保远程服务器的7687端口对外开放。
3. 检查认证配置
代码中设置了auth=None,但默认情况下Neo4j是开启认证的:
- 若你的Neo4j开启了认证,需提供正确的用户名和密码,修改代码如下:
gds = GraphDataScience("bolt://localhost:7687", auth=("neo4j", "你的数据库密码")) - 若为测试环境需要关闭认证,可修改Neo4j配置文件
neo4j.conf,设置dbms.security.auth_enabled=false,修改后重启Neo4j服务。
4. 排查网络防火墙限制
本地防火墙可能拦截了7687端口的连接请求:
- 暂时关闭本地防火墙测试是否能连接成功。
- 若测试有效,在防火墙规则中添加允许Neo4j 7687端口通信的规则。
代码小优化(不影响连接)
你的代码中导入了pandas as pd,但创建DataFrame时用的是pandas.DataFrame,可以统一改为pd.DataFrame,更符合常规写法:
nodes = pd.DataFrame(...) relationships = pd.DataFrame(...)
内容的提问来源于stack exchange,提问作者Mariusz Szymoniak
相关产品推荐
相关产品推荐

