在 Ubuntu 22.04 上安装和配置 Neo4j原文来源: Akamai - Installing and Configuring Neo4j on Ubuntu 22.04发布时间: 2024年5月8日更新 |原始作者: Cameron Laird本文档涵盖了在 Ubuntu 22.04 LTS 上安装、配置和使用 Neo4j 图数据库的完整教程。目录Neo4j 简介开始之前安装 Neo4j激活 Neo4j首次登录使用 Cypher-ShellNeo4j 配置要点接受本地网络连接接受远程连接使用 Neo4j Browser总结Neo4j 简介Neo4j 是目前最受欢迎的图数据库管理系统DBMS根据 DB-engine 排名它在图数据库领域排名第一。Neo4j 采用开源许可证可免费安装在虚拟机上。它专注于管理和搜索连接数据例如人物之间的同事关系或文档之间的语义关联。开始之前前提条件创建实例: 需要两个位于同一数据中心的 Ubuntu 22.04 LTS Compute Instance。实际应用中Neo4j 通常需要至少4 个 CPU 核心和 8GB 以上内存。两个实例都需要添加私有 IP 地址。系统安全设置: 按照 Setting Up and Securing a Compute Instance 指南更新系统、设置时区、配置主机名、创建受限用户账户并加固 SSH 访问。注意事项本指南为非 root 用户编写需要提权的命令前缀为sudo文档中使用的占位符及其替换说明占位符替换为INSTANCE_1_PUBLIC_IPNeo4j 实例的公共 IP 地址INSTANCE_1_PRIVATE_IPNeo4j 实例的私有 IP 地址YOUR_IP_ADDRESS本地机器的公共 IP 地址NEO4J_PASSWORD管理neo4j用户的密码LOCAL_NETWORK_ADDRESS/SUBNET实例私有 IPv4 地址的本地网络地址和子网安装 Neo4j在两个Ubuntu 22.04 LTS 实例上执行以下步骤步骤 1: 安装 Neo4j 的缺失依赖Instance 1 2sudoaptinstallapt-transport-https gnupg2unzip步骤 2: 安装 Neo4j 官方包仓库的 GPG 密钥Instance 1 2curl-fsSLhttps://debian.neo4j.com/neotechnology.gpg.key|sudogpg--dearmor-o/etc/apt/trusted.gpg.d/neo4j.gpg步骤 3: 添加 Neo4j 官方包仓库Instance 1 2echodeb https://debian.neo4j.com stable latest|sudotee-a/etc/apt/sources.list.d/neo4j.list步骤 4: 更新包管理器Instance 1 2sudoaptupdate步骤 5: 安装 Neo4j 包Instance 1 2sudoaptinstallneo4j出现提示时输入Y并按Enter。激活 Neo4j仅在第一个实例作为 Neo4j 服务器上执行以下步骤步骤 1: 启动 Neo4j 服务Instance 1sudosystemctl start neo4j步骤 2: 设置 Neo4j 开机自启Instance 1sudosystemctlenableneo4j步骤 3: 验证安装Instance 1sudosystemctl status neo4j输出中应显示active (running)● neo4j.service - Neo4j Graph Database Loaded: loaded (/lib/systemd/system/neo4j.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-09-29 19:36:26 EDT; 3s ago按q键关闭输出并返回终端提示符。首次登录步骤 1: 启动 cypher-shell 交互式解释器Instance 1cypher-shell步骤 2: 登录并更新密码新安装的默认用户名和密码均为neo4j首次运行时系统会立即要求为neo4j账户设置新密码请将新密码保存在安全的地方登录成功后提示符如下neo4jneo4j步骤 3: 退出 cypher-shellInstance 1:exit更多用户管理信息请参考 Neo4j 官方文档。使用 Cypher-Shell步骤 1: 重新登录Instance 1cypher-shell步骤 2: 查看可用命令Instance 1:help可用命令列表Available commands: :begin Open a transaction :commit Commit the currently open transaction :connect Connects to a database :disconnect Disconnects from database :exit Exit the logger :help Show this help message :history Statement history :impersonate Impersonate user :param Set the value of a query parameter :rollback Rollback the currently open transaction :source Executes Cypher statements from a file :sysinfo Neo4j system information :use Set the active database步骤 3: 创建示例节点创建一个 “Welcome” 组织节点Instance 1CREATE (:Welcome);输出0 rows ready to start consuming query after 64 ms, results consumed after another 0 ms Added 1 nodes, Added 1 labels步骤 4: 添加成员记录Instance 1CREATE (:Welcome {name: Mary Jones});输出0 rows ready to start consuming query after 32 ms, results consumed after another 0 ms Added 1 nodes, Set 1 properties, Added 1 labels步骤 5: 检索数据验证存储Instance 1MATCH (node) RETURN node;输出--------------------------------- | node | --------------------------------- | (:Welcome) | | (:Welcome {name: Mary Jones}) | --------------------------------- 2 rows ready to start consuming query after 25 ms, results consumed after another 5 ms步骤 6: 退出Instance 1:exit更多 Cypher 语言功能请参考 Getting Started with Cypher。Neo4j 配置要点基本配置步骤 1: 编辑配置文件Instance 1sudonano/etc/neo4j/neo4j.conf编辑完成后按CTRLX然后按Y再按Enter保存并退出nano。步骤 2: 重启 Neo4j 使配置生效Instance 1sudosystemctl restart neo4jNeo4j 的默认配置已经很完善通常无需大幅修改。高级配置请参考 Neo4j 官方文档。接受本地网络连接步骤 1: 修改配置文件Instance 1sudonano/etc/neo4j/neo4j.conf找到以下行并移除注释符#修改前:#server.default_listen_address0.0.0.0修改后:server.default_listen_address0.0.0.0配置文件上下文#***************************************************************** # Network connector configuration #***************************************************************** # With default configuration Neo4j only accepts local connections. # To accept non-local connections, uncomment this line: server.default_listen_address0.0.0.0此设置使 Neo4j 监听所有 IPv4 网络接口。按CTRLX然后按Y再按Enter保存退出。步骤 2: 重启 Neo4jInstance 1sudosystemctl restart neo4j步骤 3: 配置防火墙允许本地网络访问Instance 1sudoufw allow from LOCAL_NETWORK_ADDRESS/SUBNET to any port7687proto tcp⚠️重要提示: 如果通过 SSH 连接到实例请确保在启用 UFW 之前打开端口22否则连接可能中断只能通过 LISH Console 重新登录。打开 SSH 端口sudoufw allow22/tcp步骤 4: 启用系统防火墙Instance 1sudoufwenable出现提示时按y继续Firewall is active and enabled on system startup步骤 5: 验证防火墙配置Instance 1sudoufw status输出示例Status: active To Action From -- ------ ---- 7687/tcp ALLOW 192.168.128.0/17 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)步骤 6: 从第二个实例通过本地网络连接Instance 2cypher-shell-aneo4j://INSTANCE_1_PRIVATE_IP:7687-uneo4j-pNEO4J_PASSWORD步骤 7: 验证数据访问MATCH (node) RETURN node;应返回与之前相同的数据--------------------------------- | node | --------------------------------- | (:Welcome) | | (:Welcome {name: Mary Jones}) | --------------------------------- 2 rows ready to start consuming query after 25 ms, results consumed after another 5 ms步骤 8: 退出:exit接受远程连接以下步骤使本地桌面可以通过 Neo4j Browser 远程访问。步骤 1: 更新防火墙允许远程机器访问Instance 1sudoufw allow from YOUR_IP_ADDRESS to any port7687,7474proto tcp步骤 2: 重新加载防火墙Instance 1sudoufw reload步骤 3: 验证防火墙配置Instance 1sudoufw status输出示例Status: active To Action From -- ------ ---- 7687/tcp ALLOW 192.168.128.0/17 22/tcp ALLOW Anywhere 7474,7687/tcp ALLOW 01.234.567.89 22/tcp (v6) ALLOW Anywhere (v6)使用 Neo4j Browser步骤 1: 访问 Web 界面在本地桌面的浏览器中访问http://INSTANCE_1_PUBLIC_IP:7474步骤 2: 登录用户名:neo4j密码: 之前设置的新密码步骤 3: 使用快速链接登录后可看到以下帮助主题Getting started with Neo4j Browser— Neo4j Browser 快速入门Try Neo4j with live data— 使用实时数据体验 Neo4jCypher basics— Cypher 基础选择Try Neo4j with live data下的Open guide并按指示操作。教程会直接操作你的 Neo4j 安装实例创建、更新和查询数据。步骤 4: 验证浏览器创建的数据切换回云实例打开cypher-shell运行以下命令Instance 1 or 2MATCH (tom:Person {name: Tom Hanks}) RETURN tom;应返回------------------------------------------- | tom | ------------------------------------------- | (:Person {name: Tom Hanks, born: 1956}) | ------------------------------------------- 1 row ready to start consuming query after 2 ms, results consumed after another 0 msNeo4j Browser 内置了丰富的可视化功能可以通过 API 操作数据并生成快速图表。总结完成本教程后你应该能够在 Ubuntu 22.04 LTS 上安装 Neo4j 图数据库掌握 Neo4j 的基本配置方法开放本地网络或远程机器的访问使用cypher-shell命令行工具或 Neo4j Browser 图形界面管理和查询数据关键端口说明端口用途7687Bolt 协议cypher-shell 和程序连接7474Neo4j Browser Web 界面22SSH 访问本教程由 Akamai 原始英文文档翻译整理而成仅供参考学习。