数据库管理

Neo4j 是一个数据库管理系统(DBMS),能够管理多个数据库。该 DBMS 可以管理单机服务器,也可以管理集群中的一组服务器。

数据库是 DBMS 的一个管理分区。实际上,它是组织在目录或文件夹中的物理文件结构,其名称与数据库名称相同。

本章介绍了如何管理标准数据库、复合数据库,以及本地和远程数据库别名。所有数据库和数据库别名均使用 Cypher 管理命令进行管理。有关 Cypher 管理命令语法的更多信息,请参阅 数据库管理命令语法

在滚动升级期间,不得使用 Cypher 管理命令。有关更多信息,请参阅 升级与迁移指南 → 升级至 Neo4j 2025 版本 → 集群

标准数据库

在 Neo4j 2026.03 中,每个标准数据库都包含一个图。许多管理命令通过使用数据库名称来引用特定的图。

数据库定义了一个事务域(可以在单个事务上下文中更新的图集合)和一个执行上下文(执行请求的运行时环境)。这意味着一个事务不能跨越多个数据库。同样,过程(procedure)是在数据库内调用的,尽管其逻辑可能会访问存储在其他数据库中的数据。

各 Neo4j 版本的标准数据库

Neo4j 的版本决定了可拥有的数据库数量

  • 社区版(Community Edition)安装实例只能拥有一个标准数据库。

  • 企业版(Enterprise Edition)安装实例可以拥有任意数量的标准数据库。

默认数据库

Neo4j 2026.03 的默认安装包含一个名为 neo4j 的标准数据库,它是该 DBMS 的默认数据库。在首次启动 Neo4j 之前,可以配置不同的名称。有关详细信息,请参阅 配置参数

在企业版中,可以删除默认的标准数据库 neo4j。要删除它,必须首先通过在 system 数据库上调用 dbms.setDefaultDatabase 过程,将另一个数据库设置为默认值。有关更多信息,请参阅 更改默认数据库

下图展示了一个包含三个标准数据库(分别为 marketingsaleshr)以及 system 数据库的 Neo4j 安装实例。默认数据库为 sales

请注意,自动创建的初始默认数据库的拓扑结构可能与默认配置值不同。有关更多信息,请参阅 集群中的默认数据库

用户主数据库(Home database)

主数据库是您在未指定数据库时默认连接到的数据库。它与默认数据库不同,后者是服务器在未指定主数据库时使用的数据库。

用户主数据库通过 Cypher 管理命令进行控制。

要为用户设置主数据库,该用户必须已存在于 Neo4j 中。因此,对于使用非原生 认证提供程序 的部署,您需要创建一个具有匹配用户名的原生用户,然后为该用户设置主数据库。有关创建原生用户和配置用户主数据库的更多信息,请参阅 管理用户

system 数据库

所有安装实例都包含一个名为 system 的内置数据库,其中包含有关 DBMS 和安全配置的元数据。

system 数据库的行为与其他所有数据库不同。特别是在连接到此数据库时,您只能执行特定的一组管理任务,例如管理数据库、别名、服务器和访问控制。

system 数据库无法被删除。

大多数可用的管理命令仅限于具有特定管理权限的用户使用。配置安全权限的示例在 细粒度访问控制 中进行了描述。

有关集群环境中 system 数据库的详细信息,请参阅 管理集群中的数据库 → system 数据库

复合数据库

复合数据库是对包含在其他标准数据库中的多个图进行的逻辑分组。复合数据库定义了一个执行上下文和一个(有限的)事务域。有关更多信息,请参阅 复合数据库