列出数据库
您可以使用 Cypher 命令 SHOW DATABASES
列出数据库。
语法
命令 | 语法 |
---|---|
|
|
SHOW DATABASES
输出
根据您希望查看的内容,您可以列出
-
所有数据库。
-
特定数据库。
-
DBMS 默认数据库。
-
主数据库。
这些命令返回以下列
列 | 描述 | 类型 |
---|---|---|
|
数据库的名称。 默认输出 |
|
|
数据库的类型: |
|
|
数据库可能具有的任何别名。 默认输出 |
|
|
数据库访问模式, |
|
|
数据库的唯一 ID。 数据库必须处于 |
|
|
服务器实例 ID。 |
|
|
集群 DBMS 中的实例地址。独立数据库的默认值为 |
|
|
数据库的当前角色( 复合数据库的值为 |
|
|
对于接受此数据库写入的实例,为 |
|
|
数据库的预期状态。值可以是 |
|
|
|
|
|
一条解释数据库状态的消息,通常解释为什么它没有处于正确状态。 默认输出 |
|
|
如果这是 DBMS 的默认数据库,则为 |
|
|
如果这是当前用户的主数据库,则为 |
|
|
报告当前运行的此数据库的主节点数量。这与 复合数据库的值为 |
|
|
报告当前运行的此数据库的副本数量。这与 复合数据库的值为 |
|
|
此数据库请求的主节点数量。如果 DBMS 当前正在减少数据库副本数量,则可能低于当前值;如果正在增加副本数量,则可能高于当前值。 复合数据库的值为 |
|
|
此数据库请求的副本数量。如果 DBMS 当前正在减少数据库副本数量,则可能低于当前值;如果正在增加副本数量,则可能高于当前值。 复合数据库的值为 |
|
|
数据库创建的日期和时间。 |
|
|
数据库上次启动的日期和时间。 |
|
|
数据库上次停止的日期和时间。 |
|
|
有关存储引擎和存储格式的信息。 该值是一个字符串,格式为 数据库必须处于 复合数据库的值为 |
|
|
接收到的最后一个事务的 ID。 数据库必须处于 |
|
|
当前数据库与主实例上的数据库相比落后事务的数量。滞后以负整数表示。在独立环境中,该值始终为 数据库必须处于 |
|
|
数据库可能具有的任何组成部分的名称。仅适用于复合数据库。 默认输出 |
|
|
应用于数据库的选项映射。 复合数据库的值为 |
|
1. 此更改适用于 2025.04 及更高版本以及 5.26.5 及更高版本。 |
SHOW DATABASES
命令的结果根据用户的 ACCESS
权限进行过滤。但是,某些权限允许用户查看额外的数据库,无论其 ACCESS
权限如何
-
拥有
CREATE/DROP/ALTER DATABASE
或SET DATABASE ACCESS
权限的用户可以查看所有标准数据库。 -
拥有
CREATE/DROP COMPOSITE DATABASE
或COMPOSITE DATABASE MANAGEMENT
权限的用户可以查看所有复合数据库。 -
拥有
DATABASE MANAGEMENT
权限的用户可以查看所有数据库。
如果用户未被授予任何数据库的 ACCESS
权限,也未被授予上述任何特殊情况的权限,则该命令仍可执行,但它将仅返回始终可见的 system
数据库。
数据库状态
数据库的 currentStatus
可以是以下之一
状态 | 描述 |
---|---|
|
数据库正在运行。 |
|
数据库未运行。如果 |
|
数据库未运行,但即将运行。 |
|
数据库已停止运行,但尚未完全停止。尚无法执行任何离线操作(例如 |
|
数据库当前正在从另一个 Neo4j 实例更新。 |
|
数据库尚未创建。 |
|
仅适用于集群中的数据库。数据库仍然在线,但最终会因其在集群中的角色转移到另一个成员而离线。状态将是 |
|
此状态表示已发生错误。数据库的基础存储文件可能无效。有关更多信息,请查阅 |
|
数据库已有效停止,其状态在不再隔离之前可能不会更改。有关更多信息,请查阅 |
|
此 Neo4j 实例不知道此数据库的状态。 |
请注意,对于失败的数据库, |
显示所有可用数据库
可以使用命令 SHOW DATABASES
显示所有可用数据库的摘要。
SHOW DATABASES
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | constituents | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | "movies" | "standard" | ["films", "motion pictures"] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | [] | | "neo4j" | "standard" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | TRUE | TRUE | [] | | "system" | "system" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | [] | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
显示特定数据库的详细信息
在此示例中,可以使用命令 SHOW DATABASE name YIELD *
显示特定数据库的详细信息。提供 YIELD
子句时,将返回所有列。
SHOW DATABASE movies YIELD *
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | aliases | access | databaseID | serverID | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | currentPrimariesCount | currentSecondariesCount | requestedPrimariesCount | requestedSecondariesCount | creationTime | lastStartTime | lastStopTime | store | lastCommittedTxn | replicationLag | constituents | options | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | "movies" | "standard" | ["films", "motion pictures"] | "read-write" | "C066801F54B44EA1520F0FE392B4005AABF42D8DD0A5FD09969B955575D287D5" | "e3063985-e2f4-4728-824b-a7d53779667a" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | 1 | 0 | 1 | 0 | 2023-08-14T10:01:29.074Z | 2023-08-14T10:01:29.074Z | NULL | "record-aligned-1.1" | 3 | 0 | [] | {} | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
显示数据库数量
可以使用 YIELD
和 RETURN
子句中的 count()
函数查看不同数据库的数量。
SHOW DATABASES YIELD name
RETURN count(DISTINCT name) AS count
+-------+ | count | +-------+ | 3 | +-------+
通过指定 name
列并按唯一名称对结果进行排序,仅计算不同数据库的数量,而不是集群环境中数据库的分配数量。
显示默认数据库
可以使用命令 SHOW DEFAULT DATABASE
查看默认数据库。
SHOW DEFAULT DATABASE
+--------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | constituents | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ | "neo4j" | "standard" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | [] | +--------------------------------------------------------------------------------------------------------------------------------------------------------+
显示主数据库
可以使用命令 SHOW HOME DATABASE
查看当前用户的主数据库。
SHOW HOME DATABASE
+--------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | constituents | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ | "neo4j" | "standard" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | [] | +--------------------------------------------------------------------------------------------------------------------------------------------------------+
筛选列出的数据库
还可以使用 YIELD
、ORDER BY
和 WHERE
来筛选和排序结果。
SHOW DATABASES YIELD name, currentStatus, requestedStatus
ORDER BY currentStatus
WHERE name CONTAINS 'o'
在此示例中
-
返回的列数已通过
YIELD
子句减少。 -
返回列的顺序已更改。
-
结果通过
ORDER BY
子句按currentStatus
列排序。 -
结果已筛选,只显示包含
'o'
的数据库名称。
还可以使用 SKIP
和 LIMIT
对结果进行分页。
+--------------------------------------------+ | name | currentStatus | requestedStatus | +--------------------------------------------+ | "movies" | "online" | "online" | | "neo4j" | "online" | "online" | +--------------------------------------------+