Linux 可执行文件 (.tar)

在您从 tarball 在 Linux 上安装 Neo4j 并将其作为控制台应用程序或服务运行之前,请查看 系统要求 以查看您的设置是否合适。

从 tarball 安装 Neo4j

  1. 如果尚未安装,请获取 OpenJDK 17Oracle Java 17。从 5.14 版开始,Neo4j 还支持 JDK 21。

  2. Neo4j 部署中心 下载最新的 Neo4j tarball 并解压缩它

    tar zxf neo4j-enterprise-5.25.1-unix.tar.gz
  3. 将解压缩的文件移动到服务器的 /opt 目录并为其创建一个符号链接

    mv neo4j-enterprise-5.25.1 /opt/
    ln -s /opt/neo4j-enterprise-5.25.1 /opt/neo4j
  4. 创建一个 neo4j 用户和组

    groupadd neo4j
    useradd -g neo4j neo4j -s /bin/bash
  5. 使用以下选项之一为目录提供正确的权限

    • Ubuntu

      chown -R neo4j:adm /opt/neo4j-enterprise-5.25.1
    • RedHat

      chown -R neo4j /opt/neo4j-enterprise-5.25.1
  6. 从 Neo4j 5.4 版本开始,您需要在运行 Neo4j 企业版之前接受商业许可协议或评估许可协议。如果您使用的是社区版,则可以跳过此步骤。

    • 使用以下选项之一接受商业许可协议。有关可用协议的详细信息,请参阅Neo4j 许可页面。

      • 设置环境变量NEO4J_ACCEPT_LICENSE_AGREEMENT=yes

      • 运行<NEO4J_HOME>/bin/neo4j-admin server license --accept-commercial

    • 使用以下选项之一接受Neo4j 软件评估协议

      • 设置环境变量NEO4J_ACCEPT_LICENSE_AGREEMENT=eval

      • 运行<NEO4J_HOME>/bin/neo4j-admin server license --accept-evaluation

  7. (可选) 通过设置环境变量NEO4J_CONFserver.directories.data指向所需位置,将数据和配置目录与二进制文件分离。将您的数据和配置存储在单独的磁盘或分区上可以简化以后的升级过程。

  8. 在第一次启动数据库之前,建议使用neo4j-adminset-initial-password命令定义本地用户neo4j的密码。

    如果未通过此方法显式设置密码,则它将设置为默认密码neo4j。在这种情况下,系统将在您首次登录时提示您更改默认密码。
    有关更多信息,请参阅设置初始密码

  9. 启动 Neo4j

    • 要以控制台应用程序的形式运行 Neo4j,请使用:<NEO4J_HOME>/bin/neo4j console

    • 要以后台进程的形式运行 Neo4j,请使用:<NEO4J_HOME>/bin/neo4j start

  10. 在您的网络浏览器中打开http://localhost:7474

  11. 使用用户名neo4j和您的密码或默认密码neo4j进行连接。然后系统将提示您更改密码。

  12. 在控制台中键入Ctrl-C停止服务器。

配置 Neo4j 在系统启动时自动启动

您可以创建一个 Neo4j 服务并将其配置为在系统启动时自动启动。

  1. 创建文件/lib/systemd/system/neo4j.service,内容如下

    [Unit]
    Description=Neo4j Graph Database
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    ExecStart=/opt/neo4j/bin/neo4j console
    Restart=on-abnormal
    User=neo4j
    Group=neo4j
    Environment="NEO4J_CONF=/opt/neo4j/conf" "NEO4J_HOME=/opt/neo4j"
    LimitNOFILE=60000
    TimeoutSec=120
    
    [Install]
    WantedBy=multi-user.target
  2. 重新加载 systemctl 以获取新的服务文件

    systemctl daemon-reload
  3. 配置 Neo4j 在启动时启动

    systemctl enable neo4j
  4. 在第一次启动数据库之前,建议使用neo4j-adminset-initial-password命令定义本地用户neo4j的密码。

    如果未通过此方法显式设置密码,则它将设置为默认密码neo4j。在这种情况下,系统将在您首次登录时提示您更改默认密码。
    有关更多信息,请参阅设置初始密码

  5. 启动 Neo4j

    systemctl start neo4j
  6. 检查新创建的服务的状态

    systemctl status neo4j
  7. 重新启动系统(如果需要)以验证 Neo4j 是否在启动时重新启动

    reboot

有关操作 Neo4j 系统服务的更多信息,请参阅Neo4j 系统服务

设置打开的文件数

Linux 平台对每个用户和会话并发打开的文件数施加上限。要检查当前会话的限制,请运行命令ulimit -n。默认值为 1024。

ulimit -n

但是,如果您遇到Too many open filesCould not stat() directory异常,则必须将限制提高到 40000 或更高,具体取决于您的使用模式。当使用许多索引或服务器安装遇到过多打开的网络连接或套接字时,尤其如此。

一个快速的解决方案是命令ulimit -n <the-new-limit>,但它只会为 root 用户设置新的限制,并且只会影响当前会话。如果您想在系统范围内设置值,请按照平台的说明操作。

以下步骤将 Ubuntu 16.04 LTS、Debian 8、CentOS 7 或更高版本中用户neo4j的打开文件描述符限制设置为 60000。

以服务形式运行 Neo4j

  1. 以 root 权限打开neo4j.service文件。

    sudo systemctl edit neo4j.service
  2. 将以下内容追加到配置 Neo4j 在系统启动时自动启动中创建的[Service]部分

    [Service]
    ...
    LimitNOFILE=60000

以交互式用户身份运行 Neo4j(例如,出于测试目的)

  1. 以 root 权限在文本编辑器中打开user.conf文件。此示例使用 Vim

    sudo vi /etc/systemd/user.conf
  2. 取消注释并定义[Manager]部分中找到的DefaultLimitNOFILE的值。

    [Manager]
    ...
    DefaultLimitNOFILE=60000
  3. 打开/etc/security/limits.conf文件。

    sudo vi /etc/security/limits.conf
  4. 定义以下值

    neo4j	soft	nofile	60000
    neo4j	hard	nofile	60000
  5. 重新加载systemd设置。

    sudo systemctl daemon-reload
  6. 重新启动您的机器。

卸载 Neo4j

按照以下步骤在 Linux 上卸载 Neo4j

  1. (可选) 创建一个备份以避免丢失数据。

  2. 停止所有正在运行的 Neo4j 服务

    ---
    sudo systemctl stop neo4j
    sudo systemctl disable neo4j
    ---
  3. 删除NEO4J_HOME和文件/lib/systemd/system/neo4j.service

    ---
    rm /lib/systemd/system/neo4j.service
    rm -rf NEO4J_HOME
    ---