简介:本资源为 Neo4j 企业版 5.15.0 的 Windows 安装包,面向需要在本地搭建图数据库环境的中高级开发者、数据工程师及架构选型人员。相比社区版,企业版在容量、并发、容灾、热备、性能与插件支持上均有明显优势:无节点与关系数量上限,可部署高可用集群或因果集群应对高并发,支持热备与增量备份,能调用全部 CPU 内核,并可使用 Bloom、ETL 等企业级工具,适合对稳定性与扩展性有要求的生产场景。压缩包共 205 个文件,约 107.64MB,以 178 个 jar 依赖包为主,另含 conf 配置、bat 与 ps1 启停脚本、exe 服务程序、cer 证书及 license 授权文件,覆盖服务部署与运行所需组件。目前已有 835 人学习下载,可帮助读者快速完成 Windows 环境下的企业版部署与验证。
1. 从一台被 JDK 坑过的 Windows 机器说起
上周帮一个做知识图谱的团队在 Windows Server 上装 Neo4j 企业版 5.15.0,机器是台干净的 Windows Server 2022,结果卡了整整一个下午。不是 Neo4j 本身难装,而是 Windows 上装图数据库这件事,坑全在环境准备阶段:JDK 版本对不上、服务账户权限不够、防火墙把 Bolt 端口吃了、Neo4j 服务起不来还只给你一行模糊日志。Neo4j 企业版 5.15.0 是 5.x 系列里比较稳的一个 LTS 分支,支持 Cypher 5、多数据库、细粒度权限和在线备份,很多做企业知识图谱、风控关系网络的团队都会选它。但 Windows 版本和 Linux 版本的安装逻辑差别不小,Linux 上tar解压改配置就完事,Windows 上你得跟服务、环境变量、PowerShell 权限打交道。这篇就把我在 Windows 上装 Neo4j 企业版 5.15.0 的完整过程拆开,从 JDK 选型到服务注册、从配置调参到装坏了怎么救,照着走能跑通。
2. 装前把环境列清楚:JDK、内存、端口一个都不能少
2.1 JDK 版本选择:17 是硬门槛
Neo4j 5.15.0 对 JDK 的要求很明确:必须 JDK 17,JDK 11 和 JDK 21 都不行。这是 5.x 系列和 4.x 最大的区别之一,4.4 还能跑 JDK 11,到了 5.x 直接拉到 17。我一般会装 Eclipse Temurin 17(原 AdoptOpenJDK),Windows 上直接下.msi安装包,装完自动配好JAVA_HOME。
装完先验证,别急着往下走:
java -version # 期望输出类似: # openjdk version "17.0.9" 2023-10-17 # OpenJDK Runtime Environment Temurin-17.0.9+9 (build 17.0.9+9) # OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (build 17.0.9+9, mixed mode, sharing)如果输出的是 11 或 21,后面 Neo4j 启动会直接报Unsupported class file major version或者更隐蔽的NoClassDefFoundError。这里有个血泪经验:Windows 上如果同时装了多个 JDK,java -version走的是 PATH 里第一个,但 Neo4j 服务读的是JAVA_HOME,两者可能不一致。所以装完一定要确认JAVA_HOME指向 JDK 17:
echo %JAVA_HOME% # 期望输出:C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot不一致的话,在「系统属性 → 高级 → 环境变量」里把JAVA_HOME改到 JDK 17 路径,然后重启命令行窗口再验证。
2.2 硬件与端口清单
Neo4j 企业版 5.15.0 在 Windows 上的最低配置和推荐配置差别挺大,我整理了一张对照表,按实际部署经验填的:
| 项目 | 最低要求 | 推荐配置 | 说明 |
|---|---|---|---|
| 内存 | 4 GB | 16 GB 起 | 图数据库吃内存,堆内存建议给物理内存的 50% |
| 磁盘 | 10 GB | SSD 100 GB+ | 图数据随机读写多,机械盘会拖垮查询 |
| CPU | 2 核 | 8 核 | 并发查询和 Page Cache 都吃 CPU |
| JDK | 17 | 17 | 必须 17,不接受其他版本 |
| 端口 | 7474/7687 | 7474/7687 | 7474 HTTP,7687 Bolt |
端口这块要特别注意:7474 是 Neo4j Browser 的 HTTP 端口,7687 是 Bolt 协议端口,应用程序连 Neo4j 走的就是 7687。Windows 防火墙默认会拦这两个端口,装完连不上十有八九是防火墙的锅。提前放行:
# 以管理员身份运行 PowerShell New-NetFirewallRule -DisplayName "Neo4j HTTP" -Direction Inbound -Protocol TCP -LocalPort 7474 -Action Allow New-NetFirewallRule -DisplayName "Neo4j Bolt" -Direction Inbound -Protocol TCP -LocalPort 7687 -Action Allow这两条命令分别放行 7474 和 7687 的入站 TCP 流量。-Direction Inbound表示入站规则,-Action Allow表示允许通过。如果服务器只在内网用,可以把-RemoteAddress参数加上限定网段,别直接暴露到公网。
2.3 下载与目录规划
Neo4j 企业版 5.15.0 的 Windows 包是 zip 格式,解压即用,不需要跑安装程序。下载完解压到一个路径里没有空格和中文的目录,比如D:\neo4j\neo4j-enterprise-5.15.0。路径带空格是 Windows 上服务注册失败的常见原因,C:\Program Files\这种路径我一般不用。
解压后的目录结构大致是这样:
neo4j-enterprise-5.15.0/ ├── bin/ # 启动脚本、管理工具 ├── conf/ # 配置文件,核心是 neo4j.conf ├── data/ # 图数据存储 ├── logs/ # 日志 ├── plugins/ # 插件目录 ├── import/ # 批量导入目录 └── licenses/ # 许可证企业版需要许可证才能启动,试用版可以申请临时 license,把 license 文件放到licenses/目录下。没有 license 的话,服务启动会报License agreement not accepted或者直接退出。
3. 安装与配置:从解压到服务注册的完整链路
3.1 核心配置项:neo4j.conf 怎么改
配置文件在conf/neo4j.conf,用文本编辑器打开。默认配置大部分能用,但有几项必须改,否则要么连不上,要么性能拉胯。我一般会改这几处:
# 监听地址,0.0.0.0 表示允许外部访问 server.default_listen_address=0.0.0.0 # Bolt 连接地址,应用程序连这个 server.bolt.listen_address=:7687 # HTTP 连接地址,Browser 用这个 server.http.listen_address=:7474 # 堆内存初始值和最大值,建议设成一样避免动态调整 server.memory.heap.initial_size=4G server.memory.heap.max_size=4G # Page Cache,建议给物理内存的 50% 左右 server.memory.pagecache.size=4G # 默认数据库名 initial.dbms.default_database=neo4j # 允许从远程加载 CSV(导入数据时用) dbms.security.allow_csv_import_from_file_urls=true逐项说明一下:server.default_listen_address=0.0.0.0是关键,默认是localhost,只允许本机访问,改成0.0.0.0才能从其他机器连过来。server.memory.heap.max_size和server.memory.pagecache.size加起来别超过物理内存的 75%,留点给操作系统。Page Cache 是 Neo4j 性能的核心,图数据查询快不快基本看它给得够不够。dbms.security.allow_csv_import_from_file_urls在批量导入节点和关系时经常用到,默认是关的。
提示:改完配置别急着启动,先用
bin\neo4j console前台启动看一眼日志,确认没有配置报错再注册成服务。
3.2 注册 Windows 服务:用 neo4j windows-service
Neo4j 在 Windows 上提供了服务注册命令,在bin目录下以管理员身份运行:
# 进入 bin 目录 cd D:\neo4j\neo4j-enterprise-5.15.0\bin # 注册服务 neo4j windows-service install # 启动服务 neo4j startneo4j windows-service install会把 Neo4j 注册成 Windows 服务,服务名默认是neo4j。注册成功后可以用services.msc看到它。neo4j start是启动服务,等价于在服务管理器里点启动。
如果注册时报Access is denied,说明没用管理员权限运行命令行。如果报JAVA_HOME is not set,回去检查 2.1 节的环境变量。如果报The service did not respond in a timely fashion,大概率是 JDK 版本不对或者内存配置超过了物理内存。
服务注册后,默认是手动启动。想让它开机自启:
# 设置服务为自动启动 sc config neo4j start= auto注意start=后面有个空格,这是sc命令的语法要求,写成start=auto会报错。
3.3 首次登录与密码修改
服务启动后,浏览器打开http://localhost:7474,会看到 Neo4j Browser 界面。默认用户名和密码都是neo4j,首次登录会强制要求改密码。
改密码也可以用命令行:
# 进入 cypher-shell bin\cypher-shell -u neo4j -p neo4j # 登录后执行修改密码 ALTER CURRENT USER SET PASSWORD FROM 'neo4j' TO '你的新密码';cypher-shell是 Neo4j 自带的命令行客户端,-u指定用户名,-p指定密码。首次登录必须改密码,这是 5.x 的强制安全策略,不改的话后续操作都会被拒绝。
3.4 多数据库配置:企业版的核心能力
企业版支持多数据库,这是和社区版最大的区别之一。在neo4j.conf里可以预创建数据库:
# 初始化时创建的数据库,逗号分隔 initial.dbms.default_database=neo4j运行时创建数据库用 Cypher:
// 创建一个新数据库 CREATE DATABASE knowledge_graph; // 查看所有数据库 SHOW DATABASES; // 切换数据库 :use knowledge_graphCREATE DATABASE需要企业版 license,社区版执行会报错。SHOW DATABASES列出所有数据库及其状态。:use是 cypher-shell 的切换命令,在 Browser 里直接点数据库下拉框切换。
4. 避坑与排查:Windows 上装 Neo4j 最容易翻车的五个点
4.1 服务启动失败,日志只报 "Failed to start"
现象:neo4j start后服务状态是STOPPED,logs\neo4j.log里只有一行Failed to start,没有更多信息。
原因:Windows 服务模式下,Neo4j 的启动日志和前台模式不一样,很多错误被吞了。最常见的原因是 JDK 版本不对或JAVA_HOME指向了错误的 JDK。
解决:先用前台模式启动,看完整报错:
bin\neo4j console前台模式会把所有日志打到控制台,JDK 版本错误、内存配置错误、license 问题都会明确显示。确认问题后再改配置,改完重新注册服务。
4.2 端口被占用,Bolt 连不上
现象:Neo4j Browser 能打开,但应用程序连 7687 报Connection refused。
原因:7687 端口被其他进程占用,或者防火墙没放行。
解决:先查端口占用:
netstat -ano | findstr :7687如果输出里有LISTENING但不是 Neo4j 的 PID,说明被占了。用tasklist | findstr <PID>找到进程名,要么停掉它,要么改 Neo4j 的 Bolt 端口。防火墙问题用 2.2 节的命令放行。
4.3 内存配置超限,服务反复重启
现象:服务启动后几秒就自动停止,日志里有OutOfMemoryError或Cannot allocate memory。
原因:server.memory.heap.max_size加server.memory.pagecache.size超过了物理内存,或者超过了 Windows 单进程内存限制。
解决:把两个值调小,加起来不超过物理内存的 75%。比如 8 GB 内存的机器,堆给 3G,Page Cache 给 3G,留 2G 给系统。改完重启服务。
4.4 license 过期或未放置
现象:服务启动时报License expired或No license found。
原因:企业版必须要有有效 license,试用 license 有期限,过期后服务拒绝启动。
解决:把新的 license 文件放到licenses/目录,文件名保持默认,重启服务。license 文件不要改名字,Neo4j 按固定文件名读取。
4.5 导入 CSV 时报权限错误
现象:用LOAD CSV导入数据时报Couldn't load the external resource。
原因:CSV 文件不在import/目录下,或者dbms.security.allow_csv_import_from_file_urls没开。
解决:把 CSV 放到import/目录,用相对路径引用:
LOAD CSV WITH HEADERS FROM 'file:///nodes.csv' AS row CREATE (n:Person {name: row.name, age: toInteger(row.age)});file:///指向的就是import/目录,不要写绝对路径。如果确实要用绝对路径,得开allow_csv_import_from_file_urls,但生产环境不建议开。
5. 装完怎么验证:三步确认这套环境真的跑通了
装完不验证等于没装。我一般走三步:服务状态、Browser 连接、Cypher 读写。
第一步,确认服务状态:
neo4j status # 期望输出:Neo4j is running at pid 12345如果输出Neo4j is not running,回去看logs\neo4j.log的最后 50 行。
第二步,确认 Browser 能连:浏览器打开http://localhost:7474,用改过的密码登录,能看到欢迎界面和数据库下拉框。如果页面打不开,检查 7474 端口和防火墙。
第三步,跑一条完整的读写 Cypher:
// 创建节点 CREATE (p:Person {name: 'A同学', role: 'developer'}); // 查询验证 MATCH (p:Person {name: 'A同学'}) RETURN p.name, p.role; // 删除测试数据 MATCH (p:Person {name: 'A同学'}) DELETE p;这三条分别验证了写、读、删三个操作。如果都能正常返回,说明数据库核心功能没问题。再验证一下 Bolt 连接:
bin\cypher-shell -a bolt://localhost:7687 -u neo4j -p 你的密码 "RETURN 1 AS test;"-a指定 Bolt 地址,返回test: 1就说明 Bolt 协议通了,应用程序可以正常连。
最后验证多数据库:
SHOW DATABASES;能看到neo4j和system两个默认数据库,如果之前创建了其他数据库也会列出来。企业版 license 生效的话,CREATE DATABASE也能正常执行。
从那以后我每次装完 Neo4j,不管多急,都强制走一遍这三步验证,尤其是 Bolt 连接那条,因为 Browser 能打开不代表应用程序能连上,这两个走的是不同端口和协议。希望帮到你。
本文还有配套的精品资源,点击获取