跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQLjava

Neo4j 图数据库安装与操作指南 (Mac 版)

Neo4j 图数据库在 Mac 环境下的安装配置及基础操作教程。涵盖 JDK 环境准备、Homebrew 或手动下载安装、环境变量设置、服务启动以及 Cypher 语言进行节点的创建、修改、匹配和删除等核心功能演示,适用于社交网络分析、推荐系统等场景的入门实践。

zhang发布于 2026/4/8更新于 2026/9/1068 浏览
Neo4j 图数据库安装与操作指南 (Mac 版)

Neo4j 图数据库安装与操作指南

Neo4j 是一种高性能的图数据库,用于存储和查询图形数据。它适合于社交网络分析、推荐系统、知识图谱等场景。

一、安装前提条件

1.1 Java 环境

Neo4j 需要 Java 运行环境来运行,因此首先需要安装 JDK。可以从 Oracle 官网或 OpenJDK 网站下载并安装适合 Mac 的 JDK 版本。假设你选择的是 Neo4j 5.x,应使用 JDK 17 或更高版本;选择的是 Neo4j 4.4.x,应使用 JDK 11。

1.2 Homebrew(可选)

Homebrew 是 Mac 上的一个包管理器,可以简化安装和管理软件的过程。如果你还没有安装 Homebrew,可以通过在终端中输入以下命令来安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

二、下载并安装 Neo4j

2.1 从官方网站下载

访问 Neo4j 的官方网站下载 Graph Database,向下滑动,根据当前配置选择你自己的版本,然后下载并解压缩。

解压后在该文件夹下就可以执行 neo4j 命令了。

2.2 使用 Homebrew 安装

打开终端,输入以下命令来安装 Neo4j:

brew install neo4j

安装完成后,Neo4j 的可执行文件通常位于 /usr/local/opt/neo4j/bin 目录下。

三、配置 Neo4j

3.1 设置环境变量 (可选)

如果你打算从命令行启动 Neo4j 服务,你可能需要将其可执行文件的路径添加到你的系统 PATH 环境变量中。通常,Neo4j 的可执行文件位于:

  • Neo4j 桌面端:/Applications/Neo4j Desktop.app/Contents/Resources/app/bin 目录下。
  • 非桌面端:你解压保存的路径 /bin 目录下。

你可以通过以下方式将其添加到 PATH 中(这里以 bash shell 为例):

export PATH="/Applications/Neo4j Desktop.app/Contents/Resources/app/bin:$PATH"

将上述命令添加到你的 ~/.bash_profile 或 ~/.zshrc 文件中(取决于你使用的 shell),然后运行 source ~/.bash_profile 或 source ~/.zshrc 来使其生效。

3.2 打开配置文件 (bash_profile)

3.2.1 打开终端

你可以通过 Spotlight 搜索(按下 Command + 空格,然后输入'Terminal/终端'并回车)来打开终端。

3.2.2 使用 open 命令和默认文本编辑器 (如 TextEdit)
open -e ~/.bash_profile

这会使用你的默认文本编辑器(如 TextEdit)打开文件。注意,TextEdit 在打开纯文本文件时可能会以富文本格式显示,这可能会导致格式问题。为了避免这种情况,你可以在 TextEdit 中打开文件后,立即按 切换到纯文本模式。

Command + Shift + T
3.2.3 使用 nano 编辑器
nano ~/.bash_profile

这会打开 ~/.bash_profile 文件,你可以在 nano 编辑器中进行编辑。完成后,按 Control + O 保存文件,然后按 Enter 确认文件名,最后按 Control + X 退出编辑器。

3.2.4 使用图形界面和文本编辑器

导航到你的用户目录,然后启用显示隐藏文件的选项(在 Finder 中按下 Command + Shift + . 可以切换显示/隐藏隐藏文件),最后找到并打开 .bash_profile。选择文本编辑器直接修改保存即可。建议在完成操作后立即再次按下 Command + Shift + . 来隐藏这些文件。

四、启动 Neo4j

4.1 neo4j start

如果你使用 Homebrew 安装了 Neo4j,或者已经将 Neo4j 的可执行文件路径添加到 PATH 中,你可以在终端中输入命令 neo4j start 启动 Neo4j:

MacBook-Pro:~ scc$ neo4j start
Directories in use:
home: /Users/scc/AUserProjects/neo4j-community-4.4.38
config: /Users/scc/AUserProjects/neo4j-community-4.4.38/conf
logs: /Users/scc/AUserProjects/neo4j-community-4.4.38/logs
plugins: /Users/scc/AUserProjects/neo4j-community-4.4.38/plugins
import: /Users/scc/AUserProjects/neo4j-community-4.4.38/import
data: /Users/scc/AUserProjects/neo4j-community-4.4.38/data
certificates: /Users/scc/AUserProjects/neo4j-community-4.4.38/certificates
licenses: /Users/scc/AUserProjects/neo4j-community-4.4.38/licenses
run: /Users/scc/AUserProjects/neo4j-community-4.4.38/run
Starting Neo4j.
Started neo4j (pid:14617).
It is available at http://localhost:7474
There may be a short delay until the server is ready.

4.2 绝对路径 start

未添加 PATH,可通过可执行文件的确切位置,你可以使用完整路径来启动它:

MacBook-Pro:~ scc$ /Users/scc/AUserProjects/neo4j-community-4.4.38/bin/neo4j start
...
Started neo4j (pid:14649).
It is available at http://localhost:7474
There may be a short delay until the server is ready.

如上命令就是启动成功,进程编号都告诉你了,并且可以通过 Neo4j 的 Web 界面 (任意浏览器) 访问 http://localhost:7474,使用默认的用户名 neo4j 和密码 neo4j(首次登录后系统会提示更改密码)。

五、创建一个简单的图

Neo4j 的 Cypher 查询语言是一套用于构建、查询和操作图数据库的声明式语言。

在 Neo4j 中,图是由节点(Node)、关系(Relationship)和属性(Property)组成的。我们可以创建一个简单的图来练习 Cypher 查询。

5.1 创建节点/关系

5.1.1 创建节点并给节点 (n) 分配一个属性 (name)
CREATE (n {name:"曹操"})

这就表示我们创建成功了,在左侧 Node labels 中未发现该节点。我们执行查询节点是能操作到的。

5.1.2 创建节点并分配属性和标签 (Person)
CREATE (p:Person{name:"曹操"})

执行完后,你就可以看到左侧节点列表有数据了,还包括我们之前创建的节点。

5.1.3 批量创建节点

UNWIND 是一种操作,用于将列表中的元素解构为多行。它允许按行访问和处理列表中的每个元素,更多地用于数据导入、转换和过滤等场景。

无标签:

UNWIND [{name: '张辽'}, {name: '关羽'}] AS myNodes
CREATE (n) SET n = myNodes

有标签:如果我们只处理统一标签(Person)节点,我们可以这样的:

UNWIND [{name: '貂蝉'}, {name: '吕布'}] AS myNode
CREATE (n:Person {name: myNode.name})
5.1.4 创建一个关系

给已经存在的两个节点创建一个关系。

MATCH (a:Person),(b:Person)
WHERE a.name = '吕布' AND b.name = '貂蝉'
CREATE (a)-[r:妻子]->(b)
RETURN r

5.2 修改节点/关系

5.2.1 为节点添加属性
MATCH (n {name:'吕布'})
SET n.age=18
RETURN n
5.2.2 为节点添加标签
MATCH (n{name:'关羽'}) SET n:Person RETURN n

5.3 匹配 (查找) 节点/关系

Cypher 的 MATCH 语句和 SQL 的 SELECT 语句类似,都是查询数据的表达式。而 Cypher 语句中的 WHERE 和 SQL 语句中的 WHERE 语句由这相同的作用,其作用是用来过滤匹配的节点,在 Cypher 语句中 WHERE 是在 MATCH、OPTIONAL MATCH、WITH 或 START 语句中使用的过滤限定语句。

匹配语句结构

  • [MATCH WHERE]
  • [OPTIONAL MATCH WHERE]
  • [WITH [ORDER BY] [SKIP] [LIMIT]]
  • RETURN [ORDER BY] [SKIP] [LIMIT]
5.3.1 根据属性匹配节点信息
MATCH (n{name:"吕布"}) RETURN n
MATCH (n{age:18}) RETURN n
5.3.2 根据标签和属性匹配节点信息
MATCH (n:Person{name:"吕布"}) RETURN n
5.3.3 匹配任意节点
MATCH (n) RETURN n
5.3.4 匹配任意关系
MATCH p = (n)-[r]->(m) RETURN p
5.3.5 匹配字符串的开头
MATCH (n)
WHERE n.name STARTS WITH '吕'
RETURN n
5.3.6 匹配字符串的末尾
MATCH (n)
WHERE n.name ENDS WITH '布'
RETURN n
5.3.7 匹配字符串的包含匹配
MATCH (n)
WHERE n.name CONTAINS '吕'
RETURN n
5.3.8 字符串排除匹配
MATCH (n)
WHERE NOT n.name STARTS WITH '吕'
RETURN n

其他还有很多,如字符串正则表达式等,就不一一列举了。

5.4 删除节点/关系/表

5.4.1 删除节点属性
MATCH (n{name:'夏侯淳'}) REMOVE n.age RETURN n
  • MATCH 语句 用于找到满足条件的节点。在这里,它查找所有标签为 Person 且属性 name 值为 '夏侯淳' 的节点。
5.4.2 删除节点标签
MATCH (n{name:'夏侯淳'}) REMOVE n:Person RETURN n
5.4.3 删除节点
MATCH (p:Person {name: '夏侯淳'})
DELETE p
  • DELETE 语句 用于删除找到的节点。由于 Neo4j 中的关系是基于节点的,因此删除节点也会删除与该节点相连的所有关系。
5.4.4 删除关系

仅删除 a=>b 关系 (所有),保留节点。

MATCH (a)-[r]->(b)
WHERE a.name = '节点 A 的名称' AND b.name = '节点 B 的名称'
DELETE r

MATCH (a)-[r]->(b)
WHERE a.name = '吕布' AND b.name = '貂蝉'
DELETE r
5.4.5 删除关系及节点

删除关系以及至少一端没有其他关系的节点。

MATCH (a)-[r]->(b)
WHERE a.name = '节点 A 的名称' AND b.name = '节点 B 的名称'
DETACH DELETE r
5.4.6 删除节点所有关系

删除节点 a 和 b 以及它们与其他任何节点之间的所有关系。

MATCH (a), (b)
WHERE a.name = '节点 A 的名称' AND b.name = '节点 B 的名称'
DELETE a, b
5.4.7 删除所有节点和关系

如果你想要清空整个图数据库,可以删除所有的带有关系的节点及关系。但请注意,这是一个非常危险的操作,因为它会永久删除所有数据。

独立没有关系的节点会被保留下来。

MATCH (n)-[r]-()
DELETE n, r
5.4.8 删除所有节点

如果你想要清空整个图数据库,可以删除所有的节点。但请注意,这是一个非常危险的操作,因为它会永久删除所有数据。

MATCH (n) DELETE n

六、Neo4j 其他命令

  • 查询版本:neo4j --version
  • 服务状态:neo4j status
  • 重启服务:neo4j restart
  • 停止服务:neo4j stop
  • 卸载:brew uninstall neo4j
  • 删除数据和配置文件:rm -rf /usr/local/var/neo4j

目录

  1. Neo4j 图数据库安装与操作指南
  2. 一、安装前提条件
  3. 1.1 Java 环境
  4. 1.2 Homebrew(可选)
  5. 二、下载并安装 Neo4j
  6. 2.1 从官方网站下载
  7. 2.2 使用 Homebrew 安装
  8. 三、配置 Neo4j
  9. 3.1 设置环境变量 (可选)
  10. 3.2 打开配置文件 (bash_profile)
  11. 3.2.1 打开终端
  12. 3.2.2 使用 open 命令和默认文本编辑器 (如 TextEdit)
  13. 3.2.3 使用 nano 编辑器
  14. 3.2.4 使用图形界面和文本编辑器
  15. 四、启动 Neo4j
  16. 4.1 neo4j start
  17. 4.2 绝对路径 start
  18. 五、创建一个简单的图
  19. 5.1 创建节点/关系
  20. 5.1.1 创建节点并给节点 (n) 分配一个属性 (name)
  21. 5.1.2 创建节点并分配属性和标签 (Person)
  22. 5.1.3 批量创建节点
  23. 5.1.4 创建一个关系
  24. 5.2 修改节点/关系
  25. 5.2.1 为节点添加属性
  26. 5.2.2 为节点添加标签
  27. 5.3 匹配 (查找) 节点/关系
  28. 5.3.1 根据属性匹配节点信息
  29. 5.3.2 根据标签和属性匹配节点信息
  30. 5.3.3 匹配任意节点
  31. 5.3.4 匹配任意关系
  32. 5.3.5 匹配字符串的开头
  33. 5.3.6 匹配字符串的末尾
  34. 5.3.7 匹配字符串的包含匹配
  35. 5.3.8 字符串排除匹配
  36. 5.4 删除节点/关系/表
  37. 5.4.1 删除节点属性
  38. 5.4.2 删除节点标签
  39. 5.4.3 删除节点
  40. 5.4.4 删除关系
  41. 5.4.5 删除关系及节点
  42. 5.4.6 删除节点所有关系
  43. 5.4.7 删除所有节点和关系
  44. 5.4.8 删除所有节点
  45. 六、Neo4j 其他命令

更多推荐文章

查看全部
  • Vivado AXI4-Stream Data FIFO 核配置与测试详解
  • 扫频信号(Chirp)原理、分类及工程应用测试
  • Trae 集成图片素描 MCP 工具实现多风格图像转换
  • C++ STL vector 详解:基础用法、核心接口与实战算法
  • Linux 命名管道(FIFO)通信:原理与跨进程实战
  • VSCode 使用 Continue 插件配置免费 AI 模型实现自动编程
  • 快速排序算法详解
  • WebGIS 技术实战与项目应用:Java、三维可视化及未来展望
  • 前端可访问性:语义化 HTML 与 ARIA 最佳实践
  • GitHub 下载速度慢的 5 种有效解决方法
  • Flutter 三方库 shelf_modular 的鸿蒙化适配指南
  • 保姆级教程:25个降AI提示词大全,手把手教你去AI味
  • CMS 模板注入导致前台 RCE 漏洞挖掘与修复分析
  • 使用 Biopython 快速解析 FASTA 与 GenBank 基因数据
  • 趣味 AI 投降网页:三步体验地球统治仪式
  • C++类型约束实战精要
  • 基于 LLaMA-Factory 的大模型部署与微调实战
  • Z-Image 模型采样器选择建议:不同算法对结果的影响
  • Spring Boot 3 开源项目 ems4j:构建完整的能耗管理与 IoT 远程控表链路
  • 基于 DeepSeek 与 Cursor 构建智能代码审查工具实战

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online