配置参数

配置参数在 neo4j.conf 文件中定义。

以下配置参数适用于管理数据库

参数名称 描述

initial.dbms.default_database

Neo4j 实例的默认数据库名称。如果实例启动时数据库不存在,则会创建该数据库。

默认值: neo4j

在集群设置中,initial.dbms.default_database 的值仅用于设置初始默认数据库。若要在稍后更改默认数据库,请参阅 更改默认数据库

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

dbms.max_databases

Neo4j 单实例或集群中可使用的最大数据库数量。该数字包括所有在线和离线数据库。该值为整数,最小值为 2。企业版

默认值: 100

一旦达到此限制,将无法创建任何额外的数据库。同样,如果将限制修改为低于现有数据库总数的数字,也将无法创建任何额外的数据库。

server.databases.default_to_read_only

所有数据库的默认模式。如果此设置设为 true,则所有现有和新创建的数据库都将处于只读模式,从而阻止写入查询。

默认值: false

server.databases.read_only

禁止写入查询的数据库名称列表。此集合可以包含尚未创建的数据库,但不能包含 system 数据库。

无论 server.databases.default_to_read_onlyserver.databases.read_onlyserver.databases.writable 的设置如何,system 数据库永远不会是只读的,并且始终接受写入查询。

另一种防止写入的方法是使用 ALTER DATABASE 命令将数据库访问权限设置为只读。

配置示例

server.databases.read_only=["foo", "bar"]

server.databases.writable

接受写入查询的数据库名称列表。此集合也可以包含尚未创建的数据库。
如果 server.databases.default_to_read_only 设置为 false,则此设置的值将被忽略。
如果一个数据库名称同时出现在两个集合中,该数据库将处于只读状态并禁止写入查询。

如果您的绝大多数数据库需要设为只读(仅有少数例外),更简单的方法是将 server.databases.default_to_read_only 设置为 true,然后将非只读数据库的名称放入 server.databases.writable 中。

配置示例

server.databases.writable=["foo", "bar"]

db.query.default_language Neo4j 2025.06 中引入

除非在 CREATEALTER 数据库命令中另有指定,否则这是用于新建数据库的默认查询语言版本。此设置不会影响现有数据库。如果您启动一个新的 DBMS,默认数据库 neo4jsystem 将采用启动该 DBMS 所使用的 neo4j.conf 文件中设置的版本。

配置示例

db.query.default_language=CYPHER_25

尽管可以通过使用 Cypher 命令 ALTER DATABASE 或使用 neo4j.conf 中的配置参数这两种方式来实现相同的目标(即将数据库设置为只读),但理解两者之间的区别非常重要。ALTER DATABASE foo SET ACCESS READ ONLY 会有效地使数据库 foo整个 DBMS 内变为只读。

使用配置参数则更为细致,它允许您分别为每个实例配置访问权限,例如在集群的情况下。如果您使用 server.databases.default_to_read_only,则该实例上的所有数据库都会被设置为只读。

如果同时使用了 Cypher 命令和配置参数,且它们包含冲突的信息,则相关数据库将被设置为只读。