方案概述本方案基于官方 RPM 仓库在 Rocky Linux运行于 WSL系统上安装 Neo4j 图数据库。由于 WSL 的特殊网络环境需要特别注意 IP 地址的获取和 Windows 宿主机的访问配置。 详细安装步骤第一步添加 Neo4j 官方仓库bash# 导入官方 GPG 密钥用于验证软件包完整性 sudo rpm --import https://debian.neo4j.com/neotechnology.gpg.key # 创建 Neo4j 仓库配置文件 sudo cat EOF | sudo tee /etc/yum.repos.d/neo4j.repo [neo4j] nameNeo4j RPM Repository baseurlhttps://yum.neo4j.com/stable/latest enabled1 gpgcheck1 EOF 版本选择说明stable/latest安装最新稳定版当前为 2025.x需要 Java 21stable/5安装 Neo4j 5.x 系列需要 Java 17stable/4安装 Neo4j 4.x 系列需要 Java 11根据你的应用兼容性选择合适的版本。第二步安装 Neo4jbash# 清理缓存并安装社区版免费 sudo dnf clean dbcache sudo dnf install neo4j安装企业版如需bash# 企业版需要接受许可协议 NEO4J_ACCEPT_LICENSE_AGREEMENTeval sudo dnf install neo4j-enterprise第三步启动服务bash# 启动 Neo4j 服务 sudo systemctl start neo4j # 设置开机自启 sudo systemctl enable neo4j # 查看运行状态 sudo systemctl status neo4j⚠️ WSL 注意事项WSL 默认不启用systemd如果systemctl命令无法使用可以手动启动 Neo4jbash# 方法1直接启动 sudo neo4j start # 方法2启用 systemd推荐后续会统一管理 # 详见文末的 WSL systemd 启用指南第四步配置远程访问WSL 环境关键步骤重要WSL 实例默认只能从 Windows 宿主机通过 localhost 访问需要正确配置 Neo4j 监听地址。bash# 编辑配置文件 sudo vi /etc/neo4j/neo4j.conf修改或添加以下配置properties# 监听所有网络接口WSL 内必须设置为 0.0.0.0 server.default_listen_address0.0.0.0 # 设置对外公布的地址为 WSL 的 IP server.default_advertised_address你的WSL_IP重启服务生效bashsudo systemctl restart neo4j # 或手动重启 sudo neo4j restart第五步WSL 特定配置 - 获取 IP 地址由于 WSL 每次重启后 IP 地址可能变化需要在 Rocky Linux 内查询当前 IPbash# 查看 WSL 的 IP 地址eth0 接口 ip addr show eth0 | grep inet | awk {print $2} | cut -d/ -f1 # 或更简洁的方式 hostname -I | awk {print $1}获取 WSL IP 的完整步骤bash# 方法1显示所有网络接口 ip addr # 方法2仅显示 IP 地址 ip -4 addr show eth0 | grep -oP (?inet\s)\d(\.\d){3} # 方法3使用 hostname 命令 hostname -I 示例输出text172.27.176.123 # 这就是你的 WSL IP 地址第六步从 Windows 访问 WSL 中的 Neo4j方式一通过 WSL IP 地址访问推荐在 WSL 中查询 IPbaship addr show eth0 | grep inet假设得到 IP 为172.27.176.123在 Windows 浏览器中访问texthttp://172.27.176.123:7474方式二通过 localhost 访问仅限默认 WSL 实例如果 WSL 是默认发行版也可以尝试texthttp://localhost:7474⚠️ 注意如果 WSL 有多个发行版只有默认实例才能用localhost访问非默认实例必须使用具体的 WSL IP 地址第七步防火墙设置在 Rocky Linux on WSL 中通常 WSL 的网络防火墙限制较少但为了确保访问bash# 检查 Neo4j 是否正常监听 sudo ss -tlnp | grep -E 7474|7687 # 如果 firewalld 正在运行开放端口 sudo firewall-cmd --permanent --add-port7474/tcp sudo firewall-cmd --permanent --add-port7687/tcp sudo firewall-cmd --reload # 如果 firewalld 未运行WSL 常见检查端口监听状态即可 sudo systemctl status firewalld WSL 防火墙说明WSL 默认不启用firewalld通常不需要额外配置防火墙。关键是要确认 Neo4j 监听在0.0.0.0。第八步修改默认密码Neo4j 初始用户名和密码均为neo4j首次使用必须修改密码。方法一通过 Web 界面修改在 Windows 浏览器访问http://WSL_IP:7474如http://172.27.176.123:7474使用neo4j/neo4j登录按提示设置新密码方法二通过 WSL 命令行修改bash# 连接 Neo4j输入密码neo4j cypher-shell -u neo4j -p neo4j # 修改密码将 新密码 替换为你的密码 ALTER CURRENT USER SET PASSWORD FROM neo4j TO 新密码; # 退出 :exit第九步验证安装WSL 环境bash# 检查服务状态 sudo systemctl status neo4j # 或手动检查 sudo neo4j status # 查看 Neo4j 版本 sudo neo4j version # 测试连接本地测试 cypher-shell -u neo4j -p 新密码 RETURN Neo4j 安装成功 AS message; # 从 Windows 测试在 PowerShell 或 CMD 中 curl http://WSL_IP:7474 应用程序配置示例WSL 环境如果你的应用程序运行在 Windows 上需要连接 WSL 中的 Neo4jyaml# application.yml spring: neo4j: uri: bolt://WSL_IP:7687 # 使用 WSL 的 IP 地址 authentication: username: neo4j password: 你修改后的密码properties# application.properties spring.neo4j.uribolt://WSL_IP:7687 spring.neo4j.authentication.usernameneo4j spring.neo4j.authentication.password你修改后的密码 常用 WSL 网络排查命令bash# 查看 WSL 的 IP 地址 ip addr show eth0 # 测试 Windows 到 WSL 的连通性在 Windows PowerShell 中 ping WSL_IP # 检查端口监听状态 sudo ss -tlnp | grep 7474 # 查看所有监听端口 sudo netstat -tlnp⚠️ WSL 特定常见问题问题 1Windows 浏览器无法访问 WSL 的 Neo4j原因Neo4j 未监听0.0.0.0默认只监听127.0.0.1WSL IP 地址发生变化Windows 防火墙阻止解决bash# 1. 确认 Neo4j 监听地址 sudo grep server.default_listen_address /etc/neo4j/neo4j.conf # 2. 确认当前 WSL IP ip addr show eth0 # 3. 测试端口连通性在 Windows PowerShell 中 Test-NetConnection -ComputerName WSL_IP -Port 7474问题 2WSL 重启后 IP 地址变化解决每次 WSL 重启后重新查询 IP 地址并更新客户端配置bash# 创建脚本自动获取 IP echo #!/bin/bash ~/get_wsl_ip.sh echo ip addr show eth0 | grep inet | awk {print \$2} | cut -d/ -f1 ~/get_wsl_ip.sh chmod x ~/get_wsl_ip.sh ./get_wsl_ip.sh或在 Windows PowerShell 中通过 WSL 命令获取powershellwsl -d RockyLinux -- ip addr show eth0 | grep inet | awk {print $2} | cut -d/ -f1问题 3systemctl 无法使用WSL 默认不启用 systemd可以方案一手动启动 Neo4jbashsudo neo4j start sudo neo4j stop sudo neo4j restart sudo neo4j status方案二启用 WSL systemd推荐bash# 1. 编辑 WSL 配置文件 sudo vi /etc/wsl.conf # 2. 添加以下内容 [boot] systemdtrue # 3. 在 Windows PowerShell 中重启 WSL wsl --shutdown wsl -d RockyLinux # 4. 验证 systemd systemctl status问题 4端口被 Windows 占用现象Neo4j 启动失败提示端口 7474 或 7687 已被占用解决bash# 1. 检查端口占用 sudo ss -tlnp | grep 7474 # 2. 修改 Neo4j 端口配置 sudo vi /etc/neo4j/neo4j.conf # 修改为其他端口如 7475 server.http.listen_address0.0.0.0:7475 server.bolt.listen_address0.0.0.0:7688 # 3. 重启 Neo4j sudo neo4j restart WSL 环境端口和地址速查表项目值说明WSL 内监听地址0.0.0.0必须设置否则无法从外部访问Windows 访问地址http://WSL_IP:7474WSL_IP 通过ip addr查询默认访问方式单实例http://localhost:7474仅限默认 WSL 发行版HTTP 端口7474Web 管理界面Bolt 端口7687应用程序连接查看 WSL IPip addr show eth0每次重启可能变化✅ WSL 环境安装检查清单GPG 密钥导入成功仓库配置文件/etc/yum.repos.d/neo4j.repo已创建软件包安装成功sudo dnf install neo4jNeo4j 已启动sudo neo4j status配置server.default_listen_address0.0.0.0已获取 WSL IP 地址ip addr show eth0Windows 浏览器能访问http://WSL_IP:7474默认密码已修改应用程序能正常连接以上方案专门针对 Rocky Linux on WSL 环境进行了适配和优化。如果遇到任何具体问题欢迎随时反馈