Neo4j Admin 和 Neo4j CLI

简介

neo4j-adminneo4j 是用于管理和维护 Neo4j DBMS 的命令行工具。两者都是产品的一部分,可以通过多种命令执行。neo4j 命令等同于 neo4j-admin 服务器类别中最重要的命令。

neo4j-adminneo4j 命令均支持 --help 选项(打印命令用法和选项)以及 --version 选项(打印命令版本)。所有管理命令选项也可以放入一个文件中,并通过 @ 前缀传递给命令。当命令行过长难以管理时,这非常有用。例如:neo4j-admin database import full @/path/to/your/<args-filename> mydb。有关更多信息,请参阅 Picocli → AtFiles 官方文档。

所有管理命令必须以运行 Neo4j 的相同用户身份调用。这确保了 Neo4j 对您使用的数据库文件拥有完全的启动和操作权限。

neo4j-admin 工具

neo4j-admin 命令行工具位于 bin 目录中。

常规概要

neo4j-admin 具有以下常规概要

neo4j-admin [类别] [命令] [子命令]

neo4j-admin 各类别命令

helpversion 外,所有管理命令均分为以下三类

  • dbms - DBMS 范围(适用于单机和集群环境)的管理任务

  • server - 服务器范围的管理任务

  • database - 特定数据库的管理任务

  • backup - 特定备份任务

表 1. 各类别可用命令
类别 命令 描述

dbms

set-default-admin

在没有角色时设置默认管理员用户。

set-initial-password

设置初始管理员用户 (neo4j) 的初始密码。

详细信息,请参阅 设置初始密码

unbind-system-db

企业版
移除并归档 system 数据库的集群状态,以便实例可以重新绑定到 system 数据库的新集群状态。

详细信息,请参阅 取消绑定 system 数据库

服务器 (server)

console

在控制台中启动 DBMS 服务器。

get-id

显示实例的服务器 ID。服务器 ID 可用于在 Cypher 命令中指定服务器。

license

接受许可协议。可选选项包括:针对 商业版--accept-commercial 或针对 评估版许可--accept-evaluation。此命令必须在启动 Neo4j 企业版之前运行。从 Neo4j 2025.04 开始,使用评估版许可时,该命令会打印试用期剩余天数的信息。如果评估版许可已过期,该命令会打印警告,显示许可过期后的天数。neo4j-admin server license 也会在启动时将许可状态信息记录到 neo4j.log 文件中。

memory-recommendation

打印关于 Neo4j 堆内存和页面缓存内存使用量的建议。

详细信息,请参阅 获取初始内存建议

migrate-configuration

从前一个主版本迁移服务器配置。

详细信息,请参阅 迁移配置

report

生成一个 ZIP/TAR 包,包含远程评估所需的最常见信息。

详细信息,请参阅 生成系统报告

restart

重启服务器守护进程。

开始

以守护进程方式启动服务器。

状态 (status)

获取服务器状态。

stop

停止服务器守护进程。

unbind

企业版
从已停止的 Neo4j 服务器中移除集群状态数据。

详细信息,请参阅 取消绑定服务器

validate-config

在不启动服务器的情况下执行配置验证。

详细信息,请参阅 验证配置

windows-service

此命令及其子命令可用于将 Neo4j 安装、卸载和更新为 Windows 服务。

database

aggregate-backup

企业版 2025.01 版本起弃用
将一系列备份工件聚合成单个工件。

详细信息,请参阅 聚合数据库备份链

已由 neo4j-admin backup aggregate 取代。

备份

企业版
从运行中的 Neo4j 企业版服务器执行在线备份。

详细信息,请参阅 备份在线数据库

check

检查数据库的一致性。

详细信息,请参阅 检查数据库一致性

copy

企业版
复制数据库并选择性地应用过滤器。

详细信息,请参阅 复制数据库存储

dump

将数据库转储为单文件归档。

详细信息,请参阅 备份离线数据库

import

导入一组 CSV 文件。

详细信息,请参阅 导入

info

打印有关 Neo4j 数据库存储的信息。

详细信息,请参阅 显示存储信息

load

从使用 dump 命令创建的归档中加载数据库。

详细信息,请参阅 恢复数据库转储

migrate

将数据库从一种存储格式迁移到另一种,或在同一格式的不同版本之间进行迁移。

详细信息,请参阅 迁移数据库

restore

企业版
恢复已备份的数据库。

详细信息,请参阅 恢复数据库备份

upload

将本地数据库推送至 Neo4j Aura 实例。

详细信息,请参阅 上传至 Neo4j Aura

企业版
备份

inspect

列出存储在备份文件头中的元数据。

详细信息,请参阅 检查备份文件的元数据

aggregate

引入于 2025.01
将一系列备份工件聚合成单个工件。

详细信息,请参阅 聚合数据库备份链

Infinigraph
validate

验证一组分片属性数据库备份。

详细信息,请参阅 验证分片属性数据库备份

neo4j 工具

neo4j 命令行工具位于 bin 目录中。

常规概要

neo4j 具有以下常规概要

neo4j [命令]

neo4j 命令

该命令是 neo4j-admin server 类别中最重要命令的别名。

表 2. neo4jneo4j-admin 命令的等效性
neo4j 命令 等效的 neo4j-admin 命令

neo4j console

neo4j-admin server console

neo4j restart

neo4j-admin server restart

neo4j start

neo4j-admin server start

neo4j status

neo4j-admin server status

neo4j stop

neo4j-admin server stop

neo4j windows-service

neo4j-admin server windows-service

Version(版本)命令

可以通过在 neo4jneo4j-admin 命令的根级别调用 version 命令、--version 命令选项或其简写形式 -V 来获取版本信息。例如:neo4j --versionneo4j-admin -Vneo4j-admin versionneo4j version

Help(帮助)命令

可以通过在 neo4jneo4j-admin 命令中调用 help 命令、--help 命令选项或其简写形式 -h 来获取帮助。--help-h 选项可以在任何级别调用,即根级别、类别级别、命令级别和子命令级别。例如:neo4j --helpneo4j [命令] -hneo4j-admin -hneo4j-admin [类别] --helpneo4j-admin [类别] [命令] [子命令] -h

help 命令可以在除最后一级之外的任何级别调用(这意味着对于没有子命令的命令是命令级别,对于有子命令的命令是子命令级别)。help 命令也接受参数。例如:neo4j helpneo4j-admin helpneo4j-admin [类别] helpneo4j-admin help [类别]neo4j help [命令]neo4j-admin [类别] [命令] help [子命令]

限制

当同时使用多值选项和位置参数时,多值选项是“贪婪”的,会通过其转换器捕获下一个位置参数。这是底层库 Picocli 的限制,并非 Neo4j Admin 特有。有关更多信息,请参阅 Picocli → 可变参数选项和位置参数 官方文档。

配置

管理操作使用 neo4j.conf 文件中指定的配置。由于大多数设置相同,因此在 DBMS 及其管理任务之间共享配置是有意义的。然而,在某些情况下,通过配置任务(而不是更新 neo4j.conf 文件中的配置设置)来覆盖 neo4j.conf 中指定的某些设置会更好,因为管理任务通常比 DBMS 消耗更少的资源。例如,如果您的 DBMS 页面缓存(page cache)在 neo4j.conf 中配置了一个非常高的值,而您希望覆盖它,因为像备份这样的管理任务不需要那么多内存,您可以为管理任务提供配置,而不是更新 neo4j.conf 文件中的页面缓存设置。

有几种选项可以使用管理任务来覆盖 neo4j.conf 文件中指定的设置

  • --additional-config 选项 — 几乎所有管理命令都支持 --additional-config 选项,您可以使用它提供指向具有额外配置文件的路径(完整路径、本地路径或符号链接)。文件格式应与 neo4j.conf(或 neo4j-admin.conf)相同。该文件必须可由运行管理命令的用户读取。

  • neo4j-admin.conf — 位于与 neo4j.conf 文件相同目录下的配置文件,您可以使用它提供特定于管理任务的设置。

  • 某些命令也支持特定于命令的配置文件。这些文件也会在与 neo4j.conf 文件相同的目录中查找。下表列出了特定于命令的配置文件

    表 3. 特定于命令的配置文件
    命令 配置文件

    neo4j-admin database backup

    neo4j-admin-database-backup.conf

    neo4j-admin database check

    neo4j-admin-database-check.conf

    neo4j-admin database copy

    neo4j-admin-database-copy.conf

    neo4j-admin database dump

    neo4j-admin-database-dump.conf

    neo4j-admin database import

    neo4j-admin-database-import.conf

    neo4j-admin database load

    neo4j-admin-database-load.conf

    neo4j-admin database migrate

    neo4j-admin-database-migrate.conf

    neo4j-admin database restore

    neo4j-admin-database-restore.conf

所有这四个配置源都是可选的,管理命令的设置按照以下优先级降序进行解析

  1. --additional-config 选项

  2. 特定于命令的配置文件

  3. neo4j-admin.conf

  4. neo4j.conf

启动 DBMS 的命令(neo4j startneo4j console)必须仅在 neo4j.conf 文件中配置。

环境变量

Neo4j Admin 还可以使用以下环境变量

环境变量 描述

NEO4J_DEBUG

设置为任何值以启用调试输出。

NEO4J_HOME

Neo4j 主目录。

NEO4J_CONF

包含 neo4j.conf 的目录路径。

HEAP_SIZE

在命令执行期间设置 JVM 最大堆大小。接受数值和单位,例如 512m。

JAVA_OPTS

额外的 JVM 参数。

如果已设置,HEAP_SIZEJAVA_OPTS 将覆盖配置文件中指定的所有相关设置。

退出代码

neo4jneo4j-admin 按预期完成时,它们会以代码 0 退出。非零退出代码意味着命令执行过程中发生了意外情况。

表 4. 退出代码
退出代码 描述

0

执行成功。

1

命令执行失败。

3

命令执行失败,因为数据库未运行。

64

调用命令时选项/参数不正确。详细信息请参阅打印的用法。

70

抛出了异常,且未被其他方式处理。

非零退出代码可能包含有关错误的更多信息,例如,请参阅 backup 命令的 退出代码

命令行自动补全

从 5.4 版本开始,Neo4j 支持命令行自动补全。

  • 对于基于 Unix 的系统,Tab 键补全适用于 Bash 和 ZSH 等终端中的 neo4jneo4j-admin 命令行界面。

  • 对于 RPM 和 DEB 打包的安装,必要的文件会自动安装在 bash-completion 中。

  • 对于 tarball 安装,文件位于 bin/completion/ 目录中,并附带详细的手动安装说明。