Neo4j 支持在同一 DBMS 中管理多个数据库。这些数据库的元数据(包括相关的安全模型)保存在一个称为数据库的特殊数据库中system。所有多数据库管理命令都必须针对数据库运行。当通过 Bolt 连接到 DBMS 时,system这些管理命令会自动路由到数据库。system
|
滚动升级期间不应使用管理命令。有关更多信息,请参阅升级和迁移指南 → 升级集群。 |
创建数据库
您可以使用 Cypher 命令创建数据库CREATE DATABASE。
|
数据库名称需遵守数据库名称部分中指定的规则。不建议在数据库名称中使用点 ( |
在 Neo4j 5.22 之前的版本中,所有新数据库的默认存储格式为aligned。从 Neo4j 5.22 开始,block只要未db.format指定设置,所有新创建的数据库的默认格式都是 。
如果要更改它,您可以在neo4j.confdb.format文件中为配置设置一个新值。 或者,您可以使用命令设置新数据库的存储格式。但是,如果存储以或为种子,或者如果命令用于挂载磁盘上已经存在的预先存在的存储文件,它们将使用其当前存储格式而不进行任何更改。CREATE DATABASE databasename OPTIONS {storeFormat: 'the-new-format'}seedURIexistingDataSeedInstance
有关 Neo4j 中可用的数据库存储格式的更多详细信息,请参阅存储格式。
句法
| 命令 | 句法 |
|---|---|
|
|
|
选项
该CREATE DATABASE命令可以有一个选项图,例如OPTIONS {key: 'value'}。
| 钥匙 | 价值 | 描述 |
|---|---|---|
|
|
| 控制系统在创建数据库时如何处理磁盘上的现有数据。目前,仅支持 和 |
|
| 集群服务器ID | 定义哪个服务器用于为创建的数据库播种数据。 |
|
| 现有数据库的备份或转储的 URI。 | 从外部源定义一个相同的种子,该种子将用于为所有服务器提供种子。 |
|
| 以逗号分隔的配置值列表。 |
|
|
| 证书 | 定义需要传递到某些种子提供商的凭证。 |
|
|
| 定义出于变更数据捕获 (CDC) 目的而应用于事务日志的丰富级别。 有关丰富模式的详细信息,请参阅变更数据捕获手册 → 在自管理实例上启用 CDC → 设置丰富模式。 |
|
|
| 如果创建的数据库是新的,则定义存储格式。如果存储以 |
|
|
例子
创建数据库
要创建名为 的数据库customers,请使用命令CREATE DATABASE后跟该数据库的名称。
CREATE DATABASE customers
当您创建数据库时,它会显示在命令提供的列表中SHOW DATABASES:
SHOW DATABASES YIELD name
+-------------+
| 名称 |
+-------------+
| “顾客” |
| “电影” |
| “neo4j”|
| “系统” |
+-------------+
使用以下方式创建数据库slow,并WAIT
子句WAIT允许您指定命令必须完成并返回的时间限制。
CREATE DATABASE slow WAIT 5 SECONDS
+------------------------------------------------ ------+
| 地址 | 状态 | 消息 | 成功 |
+------------------------------------------------ ------+
| “localhost:7687” | “CaughtUp” | “被抓住了” | TRUE |
+------------------------------------------------ ------+
该success列提供了命令是否成功的汇总状态。因此,每一行都具有相同的值,该值取决于命令是否成功完成且没有超时。
IF NOT EXISTS使用或创建数据库OR REPLACE
该CREATE DATABASE命令是可选的幂等命令,如果数据库已存在,则默认行为会失败并出现错误。有两种方法可以避免此行为。
首先,附加IF NOT EXISTS到命令可确保不会返回任何错误,并且如果数据库已存在则不会发生任何事情。
CREATE DATABASE customers IF NOT EXISTS
其次,添加OR REPLACE到命令中会删除任何现有数据库并创建一个新的数据库。
CREATE OR REPLACE DATABASE customers
这相当于跑步DROP DATABASE customers IF EXISTS然后CREATE DATABASE customers。
IF NOT EXISTS和的行为OR REPLACE适用于标准数据库和复合数据库(例如,复合数据库可以替换标准数据库或另一个复合数据库)。
|
|
启动数据库
可以使用命令启动数据库START DATABASE。
|
标准数据库和复合数据库都可以使用此命令启动。 |
句法
| 命令 | 句法 |
|---|---|
|
|
|
例子
启动数据库
启动数据库是一个简单的操作。假设您有一个名为 的数据库customers。要启动它,请使用以下命令:
START DATABASE customers
您可以通过运行命令来查看已启动数据库的状态SHOW DATABASE name。
SHOW DATABASE customers YIELD name, requestedStatus, currentStatus
+------------------------------------------------------------------------+
| 名称 | 请求状态 | 当前状态 |
+------------------------------------------------------------------------+
| “客户” | “在线” | “在线” |
+------------------------------------------------------------------------+
停止数据库
可以使用命令停止数据库STOP DATABASE。
句法
| 命令 | 句法 |
|---|---|
|
|
|
例子
停止数据库
要停止数据库,请使用以下命令:
STOP DATABASE customers
|
使用此命令可以停止标准数据库和复合数据库。 |
可以使用以下命令查看已停止数据库的状态SHOW DATABASE name:
但其会提示错误:
Unsupported administration command: STOP DATABASE neo4j
SHOW DATABASE customers YIELD name, requestedStatus, currentStatus
+------------------------------------------------------------------------+
| 名称 | 请求状态 | 当前状态 |
+------------------------------------------------------------------------+
| “客户” | “离线” | “离线” |
+------------------------------------------------------------------------+
使用以下命令停止数据库WAIT
您还可以使用子句来停止数据库WAIT,该子句允许您指定系统等待数据库停止的时间。
STOP DATABASE customers WAIT 10 SECONDS
|
使用该命令停止的数据库 |
2097

被折叠的 条评论
为什么被折叠?



