基于 Debian 的发行版 (.deb)
您可以使用 Neo4j Debian 软件包在 Debian 和基于 Debian 的发行版(如 Ubuntu)上安装 Neo4j。
Java 先决条件
Neo4j 5 需要 Java 17 运行时环境。Ubuntu 16.04 LTS 中不包含 Java 17,并且必须在安装或升级到 Neo4j 5 之前手动设置,如下所述。Debian 11 和 Ubuntu 18.04 及更高版本已通过 apt
提供 OpenJDK Java 17 软件包。从 5.14 版开始,Neo4j 还支持 JDK 21。
Oracle JDK、Zulu JDK 或 Corretto JDK
如果您希望使用非默认 JDK,则必须在开始 Neo4j 安装之前安装它。否则,您的包管理器将为您的操作系统安装默认的 Java 发行版,通常是 OpenJDK。
下载和安装说明可以在制造商的网站上找到
Ubuntu 16.04 上的 OpenJDK 17
将官方 OpenJDK 软件包存储库添加到 apt
sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt-get update
现在,您可以准备安装 Neo4j,如果尚未安装,它将自动安装 Java 17。请参阅 处理多个已安装的 Java 版本,以确保您可以在安装后启动 Neo4j。
处理多个已安装的 Java 版本
您必须将默认 Java 版本配置为指向 Java 17,否则 Neo4j 5.25.1 将无法启动。使用 update-java-alternatives
命令执行此操作。
-
使用 `update-java-alternatives --list` 命令列出所有已安装的 Java 版本。
你的结果可能有所不同,但这是一个示例输出。
java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 java-1.11.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.11.0-openjdk-amd64
-
找到你的 Java 17 版本。
java -version
在本例中,它是 `java-1.17.0-openjdk-amd64`。
-
将其设置为默认版本,用其名称替换 `
`。 sudo update-java-alternatives --jre --set <java17name>
-
再次使用 `java -version` 命令确认哪个 Java 版本是默认版本。
安装
添加仓库
Debian 软件包可从 https://debian.neo4j.com 获取。
-
要使用 Neo4j 通用版本的仓库,请运行以下命令:
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list sudo apt-get update
为了避免 `apt` 包管理器意外强制数据库升级的风险,Neo4j 的不同主版本和次版本也分别在仓库中提供。要以这种方式安装 Neo4j,请用所需的版本替换 `latest`。
以下方法推荐用于生产或业务关键型安装。
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable 5' | sudo tee -a /etc/apt/sources.list.d/neo4j.list sudo apt-get update
-
将仓库添加到 `apt` 后,可以通过运行以下命令验证哪些 Neo4j 版本可用:
apt list -a neo4j
在 Ubuntu 服务器安装中,你还需要确保已启用 `universe` 仓库。如果 `universe` 仓库不存在,Neo4j 安装将失败并出现错误 `Depends: daemon but it is not installable`。
可以通过运行以下命令解决此问题:
sudo add-apt-repository universe
安装 Neo4j
要安装 Neo4j,请根据要安装的版本运行以下命令之一:
-
Neo4j 社区版
sudo apt-get install neo4j=1:5.25.1
-
Neo4j 企业版
sudo apt-get install neo4j-enterprise=1:5.25.1
请注意,该版本包含一个纪元版本组件 ( `1:` ),遵循 Debian 版本策略。
安装 Neo4j 企业版时,系统会提示你接受许可协议。接受许可协议后,安装开始。你对许可协议提示的回答将被记住,以便在同一系统上的后续安装中使用。
要忘记存储的答案,并在后续安装中触发许可协议提示,请使用 `debconf-communicate` 清除存储的答案:
echo purge | sudo debconf-communicate neo4j-enterprise
Neo4j 企业版的非交互式安装
对于 Neo4j 企业版,许可协议在交互式提示中显示。如果你需要非交互式安装 Neo4j 企业版,可以使用 `debconf-set-selections` 指示你已阅读并接受许可协议:
echo "neo4j-enterprise neo4j/accept-license select Accept commercial license" | sudo debconf-set-selections
echo "neo4j-enterprise neo4j/question select I ACCEPT" | sudo debconf-set-selections
echo "neo4j-enterprise neo4j/license note" | sudo debconf-set-selections
验证 Java 版本
在较新的 Debian 或 Ubuntu 操作系统上,默认情况下提供 Java 19,并且 `apt` 可能会安装 OpenJDK 19,**即使你已安装 Java 17**。
如果发生这种情况,Neo4j 在启动时将返回以下警告:
WARNING! You are using an unsupported Java runtime. * Please use Oracle(R) Java(TM) 17, OpenJDK(TM) 17 to run Neo4j. * Please see https://neo4j.ac.cn/docs/ for Neo4j installation instructions.
要解决此问题,可以手动安装 Java 17,然后卸载 OpenJDK 19 或将 Java 17 设置为默认版本。
-
运行以下命令手动安装 OpenJDK 17:
sudo apt install openjdk-17-jre
对于其他 Java 17 发行版,请参阅 Java 先决条件。
-
选择以下选项之一将其设置为默认版本:
-
卸载 OpenJDK 19
sudo apt remove openjdk-19-jre-headless
-
如果你想保留已安装的 OpenJDK 19,请按照 处理多个已安装的 Java 版本 中的说明将 Java 17 设置为默认版本。
-
离线安装
如果你无法访问 https://debian.neo4j.com(例如,由于防火墙),则需要通过具有相关访问权限的其他机器获取 Neo4j,然后手动移动软件包。
请注意,使用此方法意味着离线机器将不会接收使用 `apt` 安装 Neo4j 时通常自动下载和安装的依赖项;Cypher Shell 和 Java(如果尚未安装)。
|
-
运行以下命令下载所需的 Debian 软件包:
-
Neo4j 企业版
curl -O https://dist.neo4j.org/deb/neo4j-enterprise_5.25.1_all.deb
要列出 Debian 软件包(`.deb` 文件)安装的所有文件:
dpkg --contents neo4j_5.25.1_all.deb
-
Neo4j 社区版
curl -O https://dist.neo4j.org/deb/neo4j_5.25.1_all.deb
-
-
手动将下载的 Debian 软件包移动到离线机器。
-
在离线机器上运行以下命令以安装 Neo4j:
sudo dpkg -i <deb file name>
文件位置
所有 Neo4j 软件包的文件位置都记录在 此处。
操作
大多数 Neo4j 配置都位于 neo4j.conf 中。
对于使用 `systemd` 的操作系统,一些特定于软件包的选项设置在 neo4j.service 中,可以使用 `systemctl edit neo4j.service` 进行编辑。
对于不使用 `systemd` 的操作系统,一些特定于软件包的选项设置在 /etc/default/neo4j 中。
环境变量 | 默认值 | 详细信息 |
---|---|---|
NEO4J_SHUTDOWN_TIMEOUT |
120 |
等待 Neo4j 停止时的超时时间(以秒为单位)。如果花费的时间超过此时间,则认为关闭已失败。如果系统提供长时间运行的事务,则可能需要增加此值。 |
NEO4J_ULIMIT_NOFILE |
60000 |
Neo4j 进程可以打开的文件句柄的最大数量。 |
系统启动时自动启动服务
在基于 Debian 的发行版上,运行以下命令以确保 Neo4j 在启动时自动启动:
sudo systemctl enable neo4j
在首次启动数据库之前,建议使用 `neo4j-admin` 的 `set-initial-password` 命令定义本机用户 `neo4j` 的密码。 如果没有使用此方法显式设置密码,则它将设置为默认密码 `neo4j`。在这种情况下,系统会在第一次登录时提示你更改默认密码。 有关更多信息,请参阅 设置初始密码。 |
有关操作 Neo4j 系统服务的更多信息,请参阅 Neo4j 系统服务。
卸载 Neo4j
请按照以下步骤卸载 Neo4j:
-
(可选)创建 备份 以避免丢失数据。
-
卸载 Neo4j:
--- sudo apt remove neo4j ---