配置设置

Neo4j 配置设置在 neo4j.conf 中设置。有关如何使用配置设置的详细信息,请参阅neo4j.conf 文件

有关 2025.x 中已弃用和已移除的配置设置列表,请参阅页面Neo4j 2025.x 中的更改、弃用和移除

动态配置设置

动态设置可以在运行时更改,无需重启服务。

动态设置标记为动态

运行时对配置的更改不会持久化。为避免在重启 Neo4j 时丢失更改,请务必同时更新neo4j.conf

在集群环境中,CALL dbms.setConfigValue 仅影响其所针对的服务器,并且不会传播到其他成员。如果要在所有集群成员上更改配置设置,则必须对每个成员运行该过程并更新其 neo4j.conf 文件。

集群的每个成员都有自己的 neo4j.conf 文件。建议数据库的设置在集群的所有成员中保持一致。

有关如何更新动态配置设置的更多信息,请参阅更新动态设置

检查点设置

检查点是将所有待处理的页面更新从页面缓存刷新到存储文件的过程。这是定期执行的,用于在崩溃时恢复数据库。检查点设置控制检查点的频率以及每次检查点写入磁盘的数据量。另请参阅事务日志设置

db.checkpoint

表 1. db.checkpoint

描述

配置何时发生检查点的通用策略。可能的值为

有效值

[PERIODIC, CONTINUOUS, VOLUME, VOLUMETRIC] 之一。

默认值

PERIODIC

db.checkpoint.interval.time

表 2. db.checkpoint.interval.time

描述

配置检查点之间的时间间隔。数据库不会比指定间隔更频繁地创建检查点(除非检查点由不同的事件触发),但如果执行检查点所需时间超过配置的间隔,则可能检查点频率会降低。检查点是事务日志中恢复开始的点。较长的检查点间隔通常意味着在崩溃时恢复需要更长的时间。另一方面,较长的检查点间隔也可以减少数据库施加在系统上的 I/O 负载,因为每个检查点都意味着刷新和强制写入所有存储文件。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

15m

db.checkpoint.interval.tx

表 3. db.checkpoint.interval.tx

描述

配置检查点之间的事务间隔。数据库不会比指定间隔更频繁地创建检查点(除非检查点由不同的事件触发),但如果执行检查点所需时间超过配置的间隔,则可能检查点频率会降低。检查点是事务日志中恢复开始的点。较长的检查点间隔通常意味着在崩溃时恢复需要更长的时间。另一方面,较长的检查点间隔也可以减少数据库施加在系统上的 I/O 负载,因为每个检查点都意味着刷新和强制写入所有存储文件。默认值为 100000,即每 100000 个事务创建一个检查点。

有效值

最小值为 1 的整数。

默认值

100000

db.checkpoint.interval.volume

表 4. db.checkpoint.interval.volume

描述

配置检查点之间事务日志的量。数据库不会比指定间隔更频繁地创建检查点(除非检查点由不同的事件触发),但如果执行检查点所需时间超过配置的间隔,则可能检查点频率会降低。检查点是事务日志中恢复开始的点。较长的检查点间隔通常意味着在崩溃时恢复需要更长的时间。另一方面,较长的检查点间隔也可以减少数据库施加在系统上的 I/O 负载,因为每个检查点都意味着刷新和强制写入所有存储文件。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 1.00KiB

默认值

250.00MiB

db.checkpoint.iops.limit

企业版 动态

表 5. db.checkpoint.iops.limit

描述

限制后台检查点进程每秒消耗的 IO 数量。此设置为建议值。在 Neo4j 社区版中,它被忽略,而在企业版中,它会尽力遵循。在这种情况下,一个 IO 是 8 KiB(主要是顺序)写入。以这种方式限制写入 IO 会在 IO 子系统中留下更多带宽来服务随机读取 IO,这对于当数据库无法完全适应内存时查询的响应时间很重要。此设置的唯一缺点是,更长的检查点时间可能导致在数据库或系统崩溃时恢复时间略长。较低的数字意味着较低的 IO 压力,从而导致更长的检查点时间。将其设置为 -1 可禁用 IOPS 限制并完全移除限制。这使得检查点程序能够以硬件所能达到的最快速度刷新数据。移除或注释掉此设置将把默认值设置为 600

有效值

一个整数。

默认值

600

云存储集成设置

云集成设置允许您指定自定义 Azure blob 存储端点和主机授权,为 Google Cloud Storage 存储桶设置项目 ID,以及定义 Amazon S3 中传输操作的所需吞吐量。

dbms.integrations.cloud_storage.azb.blob_endpoint_suffix

表 6. dbms.integrations.cloud_storage.azb.blob_endpoint_suffix

描述

Azure blob 存储端点后缀。如果您不使用 Azure 公有云(例如,如果您使用 Azure Government),则需要更改此项。

有效值

一个字符串。

默认值

blob.core.windows.net

dbms.integrations.cloud_storage.azb.authority_endpoint

表 7. dbms.integrations.cloud_storage.azb.authority_endpoint

描述

Azure 授权主机端点(仅在某些身份验证方法中需要,应以完整形式指定 - 例如,https://login.microsoftonline.com)。

有效值

一个字符串。

默认值

dbms.integrations.cloud_storage.gs.project_id

表 8. dbms.integrations.cloud_storage.gs.project_id

描述

要连接的 Google 存储桶的项目 ID,如果未找到则回退到其 SDK 找到的值。

有效值

一个字符串。

默认值

dbms.integrations.cloud_storage.s3.target_throughput_gbps

表 9. dbms.integrations.cloud_storage.s3.target_throughput_gbps

描述

传输请求的目标吞吐量。值越高意味着与 S3 建立的连接越多。建议将其设置为应用程序运行主机上的最大网络带宽。默认值为 10.0,但在 EC2 实例上运行时,此值通常可以设置得更高(具体取决于 EC2 实例类型)。

有效值

一个双精度浮点数。

默认值

10.0

集群设置

集群设置用于配置 Neo4j 集群的行为。有关更多信息,另请参阅集群设置

db.cluster.catchup.pull_interval

表 10. db.cluster.catchup.pull_interval

描述

辅助服务器从该数据库的主服务器获取特定数据库更新的间隔。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

1s

db.cluster.raft.apply.buffer.max_bytes

表 11. db.cluster.raft.apply.buffer.max_bytes

描述

应用缓冲区中的最大字节数。此参数限制应用缓冲区可以消耗的内存量。如果达到字节限制,即使未超出 max_entries,缓冲区大小也将受到限制。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

1.00GiB

db.cluster.raft.apply.buffer.max_entries

表 12. db.cluster.raft.apply.buffer.max_entries

描述

Raft 日志条目预取缓冲区中的最大条目数。

有效值

一个整数。

默认值

1024

db.cluster.raft.in_queue.batch.max_bytes

表 13. db.cluster.raft.in_queue.batch.max_bytes

描述

RAFT 处理的最大批次(以字节为单位)。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

8.00MiB

db.cluster.raft.so_keepalive_enabled

表 14. db.cluster.raft.so_keepalive_enabled

描述

为所有 Raft TCP 通道设置保活套接字选项 (SO_KEEPALIVE)。

有效值

一个布尔值。

默认值

false

db.cluster.raft.in_queue.max_bytes

表 15. db.cluster.raft.in_queue.max_bytes

描述

RAFT 输入队列中的最大字节数。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

2.00GiB

db.cluster.raft.leader_transfer.priority_tag

表 16. db.cluster.raft.leader_transfer.priority_tag

描述

服务器标签的名称,其成员应优先作为领导者。这不保证领导者将始终是此标签的成员,但集群将尽可能尝试将领导权转移到此类成员。如果使用 db.cluster.raft.leader_transfer.priority_tag.<database> 指定数据库,则指定的优先级标签将仅适用于该数据库。如果未指定数据库,则该标签将是默认值,并应用于所有未显式设置优先级标签的数据库。使用此设置将禁用领导者平衡。

有效值

标识服务器标签的字符串。

默认值

db.cluster.raft.log.prune_strategy

表 17. db.cluster.raft.log.prune_strategy

描述

RAFT 日志修剪策略,用于确定要修剪哪些日志。Neo4j 仅修剪截至上次应用索引的日志条目,这保证只有当其中的事务安全复制到本地事务日志并被大多数集群成员安全提交后,日志才会被标记为修剪。可能的值是字节大小或事务数量(例如,200K txs)。

有效值

一个字符串。

默认值

1g 大小

db.cluster.raft.log_shipping.buffer.max_bytes

表 18. db.cluster.raft.log_shipping.buffer.max_bytes

描述

飞行中缓存中的最大字节数。此参数限制缓存可以消耗的内存量。如果达到字节限制,即使未超出 max_entries,缓存大小也将受到限制。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

1.00GiB

db.cluster.raft.log_shipping.buffer.max_entries

表 19. db.cluster.raft.log_shipping.buffer.max_entries

描述

飞行中缓存中的最大条目数。增加大小需要更多内存,但在高负载情况下可能会提高性能。

有效值

一个整数。

默认值

1024

dbms.cluster.network.client_inactivity_timeout

表 20. dbms.cluster.network.client_inactivity_timeout

描述

如果在给定的持续时间内没有网络活动,网络请求就会超时。客户端从服务器接收的每条消息都会延长超时持续时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10m

dbms.cluster.endpoints

表 21. dbms.cluster.endpoints

描述

一个逗号分隔的端点列表,服务器应联系这些端点以发现其他集群成员。所有托管 system 数据库主节点(primary)的集群成员都必须在此列表中指定。但是,通常情况下,所有集群成员(包括当前服务器)都在此列表中指定。

有效值

一个逗号分隔的列表,其中每个元素都是 hostname:porthostname:port 格式的套接字地址。

默认值

dbms.cluster.discovery.resolver_type

表 22. dbms.cluster.discovery.resolver_type

描述

配置发现服务用于确定哪些成员应成为集群一部分的解析器类型。有效值为 LISTSRVDNSK8S

LIST

一个静态配置,其中 dbms.cluster.endpoints 必须包含集群成员地址的列表。

SRVDNS

一个动态配置,其中 dbms.cluster.endpoints 必须指向包含集群成员地址的 DNS 条目。

K8S

至少必须设置 dbms.kubernetes.discovery.service_port_name。集群成员的地址是从 Kubernetes 动态查询的。

有效值

一个字符串。

默认值

LIST

dbms.cluster.minimum_initial_system_primaries_count

表 23. dbms.cluster.minimum_initial_system_primaries_count

描述

最初组建集群 DBMS 所需的最小机器数量。当至少有这么多成员相互发现、绑定并引导了一个高可用系统数据库时,集群被视为已形成。因此,集群的初始机器中至少有这么多必须将 server.cluster.system_database_mode 设置为 PRIMARY
注意:如果 dbms.cluster.discovery.resolver_type 设置为 LISTdbms.cluster.endpoints 为空,则假定用户正在部署独立 DBMS,并且此设置的值将被忽略。

有效值

最小值为 1 的整数。

默认值

3

dbms.cluster.network.connect_timeout

表 24. dbms.cluster.network.connect_timeout

描述

等待建立网络连接的最大时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

30s

dbms.cluster.network.handshake_timeout

表 25. dbms.cluster.network.handshake_timeout

描述

协议协商握手超时。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

20s

dbms.cluster.network.max_chunk_size

表 26. dbms.cluster.network.max_chunk_size

描述

集群机制允许的最大网络块大小。

有效值

一个介于 409610485760 之间的整数。

默认值

32768

dbms.cluster.network.supported_compression_algos

表 27. dbms.cluster.network.supported_compression_algos

描述

此实例在协商中允许的网络压缩算法,以逗号分隔列表。
对于传入连接,算法按偏好降序排列。空列表表示不进行压缩。
对于传出连接,这仅指定允许的算法集,远程对等体的偏好将用于做出决定。
允许值:[Snappy, Snappy_validating, LZ4, LZ4_high_compression, LZ_validating, LZ4_high_compression_validating]

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

dbms.cluster.raft.async_channel_acquisition_enabled

表 28. dbms.cluster.raft.async_channel_acquisition_enabled

描述

启用 Raft 发送器通道的异步获取。如果设置为 false,领导者将在向追随者发送条目之前等待与追随者建立连接。如果一个或多个成员建立连接缓慢,这可能会导致复制延迟。

有效值

一个布尔值。

默认值

true

dbms.cluster.raft.binding_timeout

表 29. dbms.cluster.raft.binding_timeout

描述

Neo4j 服务器上的数据库加入集群或与至少可用成员的法定人数形成新集群所允许的时间。系统数据库的成员由 dbms.cluster.endpoints 提供,标准数据库的成员由拓扑图提供。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

1d

dbms.cluster.raft.client.max_channels

表 30. dbms.cluster.raft.client.max_channels

描述

两个节点之间用于操作 Raft 协议的最大 TCP 通道数。每个数据库分配一个通道,但单个通道可以被多个数据库使用。

有效值

一个整数。

默认值

8

dbms.cluster.raft.election_failure_detection_window

表 31. dbms.cluster.raft.election_failure_detection_window

描述

领导者选举发生的速率。请注意,由于选举冲突,可能需要多次尝试才能找到领导者。该窗口应显著大于典型的通信延迟,以降低冲突的可能性。

有效值

一个持续时间范围 <min-max>(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

3s-6s

dbms.cluster.raft.leader_failure_detection_window

表 32. dbms.cluster.raft.leader_failure_detection_window

描述

检测到领导者丢失并举行第一次重新选举尝试的时间窗口。该窗口应显著大于典型的通信延迟,以降低冲突的可能性。

有效值

一个持续时间范围 <min-max>(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

20s-23s

dbms.cluster.raft.leader_transfer.balancing_strategy

表 33. dbms.cluster.raft.leader_transfer.balancing_strategy

描述

在集群中转移数据库领导权时使用的策略。请注意,如果为给定数据库指定了 leader_transfer.priority_tag,则此设置的值将对该数据库忽略。以下值可用

  • equal_balancing 自动确保每个主服务器为相同数量的数据库担任领导者角色。

  • no_balancing 阻止任何领导者角色的自动平衡。

有效值

[NO_BALANCING, EQUAL_BALANCING] 之一。

默认值

EQUAL_BALANCING

dbms.cluster.raft.log.pruning_frequency

表 34. dbms.cluster.raft.log.pruning_frequency

描述

RAFT 日志修剪频率。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10m

dbms.cluster.raft.log.reader_pool_size

表 35. dbms.cluster.raft.log.reader_pool_size

描述

RAFT 日志读取器池大小。

有效值

一个整数。

默认值

8

dbms.cluster.raft.log.rotation_size

表 36. dbms.cluster.raft.log.rotation_size

描述

RAFT 日志轮转大小。当日志达到此大小时,它将被轮转。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 1.00KiB

默认值

250.00MiB

dbms.cluster.raft.membership.join_max_lag

表 37. dbms.cluster.raft.membership.join_max_lag

描述

新追随者加入 Raft 组所允许的最大滞后量。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10s

dbms.cluster.raft.membership.join_timeout

表 38. dbms.cluster.raft.membership.join_timeout

描述

新成员赶上数据的超时时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10m

dbms.cluster.store_copy.max_retry_time_per_request

表 39. dbms.cluster.store_copy.max_retry_time_per_request

描述

存储复制期间每个请求的最大重试时间。在存储复制期间,常规存储文件和索引在单独的请求中下载。此配置设置了允许失败请求重发的最长时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

20m

initial.dbms.automatically_enable_free_servers

表 40. initial.dbms.automatically_enable_free_servers

描述

自动启用空闲服务器。

有效值

一个布尔值。

默认值

false

initial.dbms.default_primaries_count

表 41. initial.dbms.default_primaries_count

描述

标准数据库的主服务器初始默认数量。如果用户在 CREATE DATABASE 中未指定主服务器数量,则除非被 dbms.setDefaultAllocationNumbers 过程覆盖,否则将使用此值。

有效值

一个整数,最小值为 1,最大值为 11

默认值

1

initial.dbms.default_secondaries_count

表 42. initial.dbms.default_secondaries_count

描述

标准数据库的辅助服务器初始默认数量。如果用户在 CREATE DATABASE 中未指定辅助服务器数量,则除非被 dbms.setDefaultAllocationNumbers 过程覆盖,否则将使用此值。

有效值

一个整数,最小值为 0,最大值为 20

默认值

0

initial.server.allowed_databases

表 43. initial.server.allowed_databases

描述

此服务器上允许的数据库名称;所有其他数据库均被拒绝。空值表示允许所有数据库。此配置可在启用服务器时覆盖或在运行时更改而无需更改此设置。与 server.initial_denied_databases 互斥。

有效值

一个逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母、数字、点和破折号,长度在 3 到 63 个字符之间,以字母或数字开头,但不能以 system 命名。

默认值

initial.server.denied_databases

表 44. initial.server.denied_databases

描述

此服务器上不允许的数据库名称。空值表示不拒绝任何数据库。此配置可在启用服务器时覆盖或在运行时更改而无需更改此设置。与 server.initial_allowed_databases 互斥。

有效值

一个逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母、数字、点和破折号,长度在 3 到 63 个字符之间,以字母或数字开头,但不能以 system 命名。

默认值

initial.server.mode_constraint

表 45. initial.server.mode_constraint

描述

服务器可以限制自身,只允许将数据库作为主服务器或辅助服务器托管。此设置是 ENABLE SERVER 命令的默认输入 — 用户在执行命令时可以覆盖它。

有效值

以下之一:[PRIMARY, SECONDARY, NONE]。

默认值

NONE

initial.server.tags

表 46. initial.server.tags

描述

服务器的标签名称列表,用于数据库分配以及配置负载均衡和复制策略。此设置是 ENABLE SERVER 命令的默认输入 — 用户在执行命令时可以覆盖它。

有效值

一个逗号分隔的列表,其中每个元素都是标识服务器标签的字符串,不包含重复项。

默认值

server.cluster.advertised_address

表 47. server.cluster.advertised_address

描述

事务传输服务器的对外主机名/IP 地址和端口。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:6000

server.cluster.catchup.connect_randomly_to_server_tags

表 48. server.cluster.catchup.connect_randomly_to_server_tags

描述

逗号分隔的标签列表,供“随机连接到带标签的服务器”选择策略使用。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 connect-randomly-to-server-with-tag 时,使用“随机连接到带标签的服务器”策略。

有效值

一个逗号分隔的列表,其中每个元素都是标识服务器标签的字符串。

默认值

server.cluster.catchup.upstream_strategy

表 49. server.cluster.catchup.upstream_strategy

描述

辅助服务器选择上游服务器以从中拉取事务更新的降序策略列表。如果均无效或列表为空,则默认策略为 typically-connect-to-random-secondary

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.cluster.catchup.user_defined_upstream_strategy

表 50. server.cluster.catchup.user_defined_upstream_strategy

描述

用户定义上游选择策略的配置。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 user_defined 时,使用用户定义的策略。

有效值

一个字符串。

默认值

server.cluster.listen_address

表 51. server.cluster.listen_address

描述

事务传输服务器监听的网络接口和端口。请注意,也可以通过此端口运行备份客户端,因此请务必通过防火墙限制对其的访问并配置 SSL 策略。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:6000

server.cluster.network.native_transport_enabled

表 52. server.cluster.network.native_transport_enabled

描述

如果可用,使用原生传输。Linux 使用 Epoll,MacOS/BSD 使用 Kqueue。如果此设置设为 false,或者原生传输不可用,将使用 Nio 传输。

有效值

一个布尔值。

默认值

true

server.cluster.raft.advertised_address

表 53. server.cluster.raft.advertised_address

描述

RAFT 服务器的对外主机名/IP 地址和端口。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7000

server.cluster.raft.listen_address

表 54. server.cluster.raft.listen_address

描述

RAFT 服务器监听的网络接口和端口。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7000

server.cluster.system_database_mode

表 55. server.cluster.system_database_mode

描述

用户必须在每台服务器上手动指定系统数据库的模式。

有效值

以下之一:[PRIMARY, SECONDARY]。

默认值

PRIMARY

连接设置

连接设置控制服务器之间以及服务器与客户端之间的通信。Neo4j 通过连接器提供对 Bolt、HTTP 和 HTTPS 协议的支持。有关连接器的更多信息,请参阅配置网络连接器

配置 HTTPS 或 Bolt 时,另请参阅安全设置SSL 框架以获取有关如何使用 SSL 证书的详细信息。

server.bolt.advertised_address

表 56. server.bolt.advertised_address

描述

此连接器的对外地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7687

server.bolt.connection_keep_alive

表 57. server.bolt.connection_keep_alive

描述

在活动进行中查询等待响应的连接上发送 NOOP 之前的最长等待时间。最小值为 1 毫秒。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1ms

默认值

1m

server.bolt.connection_keep_alive_for_requests

表 58. server.bolt.connection_keep_alive_for_requests

描述

启用保持活动消息的消息类型:ALLSTREAMINGOFF

有效值

以下之一:[ALL, STREAMING, OFF]。

默认值

ALL

server.bolt.connection_keep_alive_probes

表 59. server.bolt.connection_keep_alive_probes

描述

在连接被认为是陈旧之前丢失的总探测次数。最小值为 1。

有效值

最小值为 1 的整数。

默认值

2

server.bolt.connection_keep_alive_streaming_scheduling_interval

表 60. server.bolt.connection_keep_alive_streaming_scheduling_interval

描述

所有活动查询连接上每次计划保持活动检查之间的时间间隔。持续时间为零表示关闭保持活动服务。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 0s

默认值

1m

server.bolt.enabled

表 61. server.bolt.enabled

描述

启用 Bolt 连接器。

有效值

一个布尔值。

默认值

true

server.bolt.listen_address

表 62. server.bolt.listen_address

描述

连接器应绑定的地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7687

server.bolt.additional_listen_addresses

表 63. server.bolt.additional_listen_addresses

描述

连接器应绑定的附加地址。

有效值

一个逗号分隔的集合,其中每个元素都是格式为 hostname:porthostname:port 的套接字地址。

默认值

server.bolt.ocsp_stapling_enabled

表 64. server.bolt.ocsp_stapling_enabled

描述

为 Bolt 和 HTTP 连接器启用服务器 OCSP 装订。

有效值

一个布尔值。

默认值

false

server.bolt.telemetry.enabled

表 65. server.bolt.telemetry.enabled

描述

启用驱动程序遥测数据收集。

有效值

一个布尔值。

默认值

false

server.bolt.enable_network_error_accounting

表 66. server.bolt.enable_network_error_accounting

描述

启用基于核算的 Bolt 栈内良性错误报告。启用后,良性错误仅在这些事件以异常频率发生时才报告。禁用后,所有良性网络错误均会报告。

有效值

一个布尔值。

默认值

true

server.bolt.network_abort_clear_window_duration

表 67. server.bolt.network_abort_clear_window_duration

描述

网络相关的连接中止需要保持在合理水平的持续时间,然后才能清除错误。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.network_abort_warn_threshold

表 68. server.bolt.network_abort_warn_threshold

描述

在指定时间窗内允许的网络相关连接中止的最大数量,超过此数量将发出日志消息。值为零则恢复为旧版警告行为。

有效值

一个长整型,最小值为 0

默认值

2

server.bolt.network_abort_warn_window_duration

表 69. server.bolt.network_abort_warn_window_duration

描述

网络相关连接中止采样的时间窗持续时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.thread_pool_keep_alive

表 70. server.bolt.thread_pool_keep_alive

描述

绑定到此连接器的线程池中空闲线程等待新任务的最长时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

5m

server.bolt.thread_pool_max_size

表 71. server.bolt.thread_pool_max_size

描述

绑定到此连接器的线程池中允许的最大线程数。

有效值

一个整数。

默认值

400

server.bolt.thread_pool_min_size

表 72. server.bolt.thread_pool_min_size

描述

绑定到此连接器的线程池中要保留的线程数,包括空闲线程。

有效值

一个整数。

默认值

5

server.bolt.thread_starvation_clear_window_duration

表 73. server.bolt.thread_starvation_clear_window_duration

描述

未调度请求需要保持在合理水平的持续时间,然后才能清除错误。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.thread_starvation_warn_threshold

表 74. server.bolt.thread_starvation_warn_threshold

描述

在指定时间窗内,线程饥饿事件期间允许的未调度请求的最大数量,超过此数量将发出日志消息。

有效值

一个长整型,最小值为 0

默认值

2

server.bolt.thread_starvation_warn_window_duration

表 75. server.bolt.thread_starvation_warn_window_duration

描述

未调度请求采样的时间窗持续时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.tls_level

表 76. server.bolt.tls_level

描述

用于保护与此连接器通信的加密级别。

有效值

以下之一:[REQUIRED, OPTIONAL, DISABLED]。

默认值

DISABLED

server.bolt.traffic_accounting_check_period

表 77. server.bolt.traffic_accounting_check_period

描述

当前流量使用量采样之间的时间。较低的值会产生更准确的报告,同时会带来更高的性能损失。零值会禁用流量核算。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),为 0s 或最小值为 1m

默认值

5m

server.bolt.traffic_accounting_clear_duration

表 78. server.bolt.traffic_accounting_clear_duration

描述

低于配置的流量阈值以清除流量警告所需的时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1m

默认值

10m

server.bolt.traffic_accounting_incoming_threshold_mbps

表 79. server.bolt.traffic_accounting_incoming_threshold_mbps

描述

在发出警告之前,在配置的核算检查窗口内允许的最大入站流量(以 Mbps 为单位)。

有效值

一个长整型,最小值为 1

默认值

950

server.bolt.traffic_accounting_outgoing_threshold_mbps

表 80. server.bolt.traffic_accounting_outgoing_threshold_mbps

描述

在发出警告之前,在配置的核算检查窗口内允许的最大出站流量(以 Mbps 为单位)。

有效值

一个长整型,最小值为 1

默认值

950

server.http.advertised_address

表 81. server.http.advertised_address

描述

此连接器的对外地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7474

server.http.enabled

表 82. server.http.enabled

描述

启用 HTTP 连接器。

有效值

一个布尔值。

默认值

true

server.http.listen_address

表 83. server.http.listen_address

描述

连接器应绑定的地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7474

server.http_enabled_modules

表 84. server.http_enabled_modules

描述

定义加载到 Neo4j Web 服务器中的模块集。企业管理端点仅在企业版中可用。

有效值

一个逗号分隔的集合,其中每个元素是 [TRANSACTIONAL_ENDPOINTS, UNMANAGED_EXTENSIONS, BROWSER, ENTERPRISE_MANAGEMENT_ENDPOINTS, QUERY_API_ENDPOINTS] 之一。

默认值

TRANSACTIONAL_ENDPOINTS,UNMANAGED_EXTENSIONS,BROWSER,ENTERPRISE_MANAGEMENT_ENDPOINTS,QUERY_API_ENDPOINTS

server.http_enabled_transports

表 85. server.http_enabled_transports

描述

定义 HTTP 服务器上可用的传输集。

有效值

一个逗号分隔的集合,其中每个元素是 [HTTP1_1, HTTP2] 之一。

默认值

HTTP1_1,HTTP2

server.https.advertised_address

表 86. server.https.advertised_address

描述

此连接器的对外地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7473

server.https.enabled

表 87. server.https.enabled

描述

启用 HTTPS 连接器。

有效值

一个布尔值。

默认值

false

server.https.listen_address

表 88. server.https.listen_address

描述

连接器应绑定的地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7473

server.default_advertised_address

表 89. server.default_advertised_address

描述

服务器用于对外宣传自身的默认主机名或 IP 地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port,没有指定端口且是可访问的地址。

默认值

localhost

server.default_listen_address

表 90. server.default_listen_address

描述

监听传入连接的默认网络接口。要监听所有接口上的连接,请使用“0.0.0.0”。

有效值

一个套接字地址,格式为 hostname:porthostname:port,没有指定端口。

默认值

localhost

server.routing.advertised_address

表 91. server.routing.advertised_address

描述

集群内部路由连接器的对外地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7688

server.routing.listen_address

表 92. server.routing.listen_address

描述

路由连接器应绑定的地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7688

dbms.routing.client_side.enforce_for_domains

表 93. dbms.routing.client_side.enforce_for_domains

描述

对于连接到这些域的 neo4j:// 协议,始终使用客户端路由(无论默认路由器如何)。一个逗号分隔的域列表。支持通配符 (*)。

有效值

一个逗号分隔的集合,其中每个元素都是一个字符串。

默认值

dbms.routing.default_router

表 94. dbms.routing.default_router

描述

neo4j:// 协议连接的路由策略。默认值为 CLIENT,使用客户端路由,并以服务器端路由作为备用(如果启用)。当设置为 SERVER 时,客户端路由被短路,请求依赖于服务器端路由(必须启用才能正常运行,即 dbms.routing.enabled=true)。可以被 dbms.routing.client_side.enforce_for_domains 覆盖。

有效值

以下之一:[SERVER, CLIENT]。

默认值

CLIENT

dbms.routing.driver.connection.connect_timeout

表 95. dbms.routing.driver.connection.connect_timeout

描述

套接字连接超时。超时时间为零被视为无限超时,并受限于操作系统级别的配置超时。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

5s

dbms.routing.driver.connection.max_lifetime

表 96. dbms.routing.driver.connection.max_lifetime

描述

超过此阈值的连接池中的连接将被关闭并从连接池中移除。将此选项设置为低值将导致高连接流失率,并可能导致性能下降。建议将最大生命周期设置为略小于网络设备(负载均衡器、代理、防火墙等也可能限制最大连接生命周期)中配置的值。零和负值表示不检查生命周期。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

1h

dbms.routing.driver.connection.pool.acquisition_timeout

表 97. dbms.routing.driver.connection.pool.acquisition_timeout

描述

尝试从连接池获取连接所花费的最长时间。此超时仅在所有现有连接正在使用且无法创建新连接(因为已达到最大连接池大小)时才生效。如果在配置的时间内无法获取连接,则会引发错误。允许负值,这会导致无限的获取超时。允许值为 0,这表示没有超时,并且在连接不可用时立即失败。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

1m

dbms.routing.driver.connection.pool.idle_test

表 98. dbms.routing.driver.connection.pool.idle_test

描述

在连接池中空闲时间超过此超时时间的池化连接,在使用前会进行测试以确保它们仍然存活。如果此选项的值过低,获取连接将需要额外的网络调用,这会导致性能下降。如果此选项的值过高,活动连接可能不再被使用,从而导致错误。因此,此参数平衡了出现连接问题和性能的可能性。通常,此参数不需要调整。值为 0 表示连接将始终进行有效性测试。默认情况下不进行连接活性检查。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

dbms.routing.driver.connection.pool.max_size

表 99. dbms.routing.driver.connection.pool.max_size

描述

连接池管理的最大连接总数。该限制适用于主机和用户的组合。允许负值,表示无限制。不允许值为 0。默认为 -1(无限制)。

有效值

一个整数。

默认值

-1

dbms.routing.driver.logging.level

表 100. dbms.routing.driver.logging.level

描述

设置驱动程序内部日志记录级别。

有效值

以下之一:[DEBUG, INFO, WARN, ERROR, NONE]。

默认值

INFO

dbms.routing.enabled

表 101. dbms.routing.enabled

描述

在集群中使用附加 Bolt 连接器启用服务器端路由。配置后,这允许将请求从一个集群成员转发到另一个成员,如果第一个成员无法满足请求(例如,非领导者收到写入请求)。

有效值

一个布尔值。

默认值

true

dbms.routing.load_balancing.plugin

表 102. dbms.routing.load_balancing.plugin

描述

每次生成路由表时,改变路由表中的条目顺序。这意味着不同的客户端应选择一系列服务器作为其首次联系,减少所有客户端联系同一服务器的可能性,如果存在替代方案的话。这使得服务器之间的负载更加均衡。

有效值

一个字符串。

默认值

server_policies

dbms.routing.load_balancing.shuffle_enabled

表 103. dbms.routing.load_balancing.shuffle_enabled

描述

每次生成路由表时,改变路由表中的条目顺序。这意味着不同的客户端应选择一系列服务器作为其首次联系,减少所有客户端联系同一服务器的可能性,如果存在替代方案的话。这使得服务器之间的负载更加均衡。

有效值

一个布尔值。

默认值

true

dbms.routing.reads_on_primaries_enabled

表 104. dbms.routing.reads_on_primaries_enabled

描述

配置 dbms.routing.getRoutingTable() 过程是否应将非写入者主服务器包含为读取端点或仅返回辅助服务器。
注意:如果给定数据库没有辅助服务器,则无论此设置的值如何,主服务器都将作为读取端点返回。默认值为 true,以便在典型的异构设置中,非写入者主服务器可用于只读查询。

有效值

一个布尔值。

默认值

true

dbms.routing.reads_on_writers_enabled

表 105. dbms.routing.reads_on_writers_enabled

描述

配置 dbms.routing.getRoutingTable() 过程是否应将写入者包含为读取端点或仅返回非写入者(非写入者主服务器和辅助服务器)。
注意:如果没有其他成员存在,则写入者将作为读取端点返回。

有效值

一个布尔值。

默认值

false

dbms.routing_ttl

表 106. dbms.routing_ttl

描述

调用者应缓存路由过程 dbms.routing.getRoutingTable() 响应的时长。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1s

默认值

5m

Cypher 设置

Cypher 设置会影响 Cypher 查询的行为。它们可用于调整 Cypher 查询的性能或限制可执行的查询类型。有关更多信息,请参阅统计信息和执行计划

dbms.cypher.forbid_exhaustive_shortestpath

表 107. dbms.cypher.forbid_exhaustive_shortestpath

描述

此设置与性能优化相关。在以下情况下将其设置为 true:当使用“shortestPath”函数的查询能够尽快终止而无需找到答案(即使没有找到路径)时,而不是可能长时间运行以尝试找到答案(即使没有路径可找到)。对于大多数查询,“shortestPath”算法会非常快速地返回正确答案。但是,在某些情况下,即使存在结果,快速的双向广度优先搜索算法也可能找不到结果。当 WHERE 子句中应用于“shortestPath”的谓词无法应用于遍历的每个步骤,而只能应用于整个路径时,可能会发生这种情况。当查询规划器检测到这些特殊情况时,如果快速算法找不到路径,它将计划执行穷尽的深度优先搜索。然而,穷尽搜索可能比快速算法慢几个数量级。如果查询必须尽快终止,建议将此选项设置为 true,这意味着 Neo4j 永远不会考虑对 shortestPath 查询使用穷尽搜索。但是,请注意,如果找不到路径,运行时将抛出错误,应用程序需要处理该错误。

有效值

一个布尔值。

默认值

false

dbms.cypher.forbid_shortestpath_common_nodes

表 108. dbms.cypher.forbid_shortestpath_common_nodes

描述

此设置与性能优化相关。当起始节点和结束节点相同时,最短路径算法不起作用。将此设置设置为 false 时,如果发生这种情况,将不返回任何路径。默认值 true 将 대신 抛出异常。这可能发生在您在笛卡尔积之后执行最短路径搜索时,该笛卡儿积可能对传递给最短路径的某些行具有相同的起始节点和结束节点。如果 prefer 不遇到此异常,并且可以接受这些行缺少结果,则将其设置为 false。如果您无法接受缺少结果,并且确实想要两个共同节点之间的最短路径,则使用标准 Cypher 可变长度模式表达式重写查询,然后按路径长度排序并限制为一个结果。

有效值

一个布尔值。

默认值

true

dbms.cypher.hints_error

表 109. dbms.cypher.hints_error

描述

设置此项以指定当 Cypher 规划器或运行时提示无法满足时的行为。如果为 true,则不符合要求将导致错误,否则仅生成警告。

有效值

一个布尔值。

默认值

false

dbms.cypher.infer_schema_parts

表 110. dbms.cypher.infer_schema_parts

描述

允许在基数估算期间进行标签推断。如果规划器可以逻辑推断节点具有查询中未明确表达的标签,则规划器将在基数估算期间使用此信息。
此设置控制规划器应做到何种程度

  • OFF:不推断任何谓词。

  • MOST_SELECTIVE_LABEL:关系类型用于推断关系末端节点上的标签。规划器每个节点最多推断一个标签。如果给定节点可以推断出多个标签,规划器会保留最具选择性的标签,即图中节点数量最少的那个。

有效值

以下之一:[MOST_SELECTIVE_LABEL, OFF]。

默认值

OFF

对于某些查询,规划器可以从图结构中推断出谓词(例如标签或类型),这可以改进对每个运算符生成的行数的估计。有关更多信息,请参阅Cypher 手册 → 执行计划和查询优化 → 理解执行计划
有关如何按查询配置此设置(从而有效地覆盖该特定查询的此设置)的详细信息,请参阅Cypher 手册 → 查询优化 → Cypher 推断模式部分

dbms.cypher.lenient_create_relationship

表 111. dbms.cypher.lenient_create_relationship

描述

当起始节点或结束节点缺失时,设置此项以更改 Cypher 创建关系的行为。默认情况下,这会使查询失败并停止执行,但通过设置此标志,创建操作将简单地不执行,并且执行继续。

有效值

一个布尔值。

默认值

false

dbms.cypher.min_replan_interval

表 112. dbms.cypher.min_replan_interval

描述

可能的 Cypher 查询重新规划事件之间的最短时间。在此时间之后,将评估图统计信息,如果它们的变化超过了 dbms.cypher.statistics_divergence_threshold 设置的值,查询将重新规划。如果统计信息没有充分改变,则需要经过相同的时间间隔才能再次评估统计信息。每次评估时,发散阈值将略微降低,直到 7 小时后达到 10%,这样即使是适度更改的数据库,在足够长的时间间隔后也会进行查询重新规划。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10s

dbms.cypher.planner

表 113. dbms.cypher.planner

描述

设置此项以指定默认语言版本的默认规划器。

有效值

以下之一:[DEFAULT, COST]。

默认值

DEFAULT

dbms.cypher.render_plan_description

表 114. dbms.cypher.render_plan_description

描述

如果设置为 true,则所有使用 EXPLAINPROFILE 运行的查询都将在服务器上渲染计划描述的文本表示。这允许 neo4j 浏览器和 Cypher shell 等客户端显示更详细的计划描述。

有效值

一个布尔值。

默认值

true

dbms.cypher.statistics_divergence_threshold

表 115. dbms.cypher.statistics_divergence_threshold

描述

统计信息超过此值时,计划被视为过期的阈值。

如果用于创建计划的任何底层统计信息的变化超过此值,则该计划将被视为过期并重新规划。变化计算为 abs(a-b)/max(a,b)

这意味着 0.75 的值要求数据库大小翻四倍才能重新规划查询。0 的值表示只要统计信息有任何变化并且重新规划间隔已过,查询就会立即重新规划。

此间隔由 dbms.cypher.min_replan_interval 定义,默认为 10 秒。在此间隔之后,发散阈值将缓慢开始下降,大约 7 小时后达到 10%。这将确保长期运行的数据库即使在适度更改时仍能获得查询重新规划,同时除非更改非常大,否则不会频繁重新规划。

有效值

一个在 0.01.0 范围内的双精度浮点数。

默认值

0.75

dbms.cypher.transactions.default_subquery_retry_timeout

表 116. dbms.cypher.transactions.default_subquery_retry_timeout

描述

对于在带有 CALL () { …​ } IN TRANSACTIONS …​ ON ERROR RETRY …​ 子句的查询中因瞬态错误而失败的子查询事务,尝试重试的最大默认时间。此设置仅在查询中未明确指定重试超时时使用。例如,CALL () { …​ } IN TRANSACTIONS …​ ON ERROR RETRY FOR 10 SECONDS 将覆盖此设置,为该特定查询设置 10 秒的重试超时。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s)。

默认值

30s

server.cypher.parallel.worker_limit

表 117. server.cypher.parallel.worker_limit

描述

为并行运行时分配给 Cypher 工作线程的线程数。如果设置为正数,则会启动相应数量的工作线程。如果设置为 0,则会为 Java 虚拟机可用的每个逻辑处理器启动一个工作线程。

如果设置为负数,则服务器上可用的逻辑处理器总数将减少该负数的绝对值。例如,如果服务器有 16 个可用处理器,并且您将 server.cypher.parallel.worker_limit 设置为 -1,则并行运行时将有 15 个线程可用。

有效值

一个整数。

默认值

0

数据库设置

数据库设置会影响 Neo4j 数据库的行为,例如文件监视服务、数据库格式、数据库存储文件和数据库时区。它们可以在每个数据库之间有所不同,但在集群/DBMS 中的所有配置文件中必须保持一致。

db.filewatcher.enabled

表 118. db.filewatcher.enabled

描述

允许启用或禁用文件监视服务。这是一个辅助服务,但在几乎所有情况下都应保持启用。

有效值

一个布尔值。

默认值

true

db.format

表 119. db.format

描述

数据库格式。这是新数据库将使用的格式。有效值为 standardalignedhigh_limitblockaligned 格式本质上是 standard 格式,但在页面末尾有一些最小的填充,使得单个记录永远不会跨越页面边界。high_limitblock 格式仅适用于企业版。如果您的图大于 340 亿个节点、340 亿个关系或 680 亿个属性,则需要使用 high_limitblock 格式。

有效值

一个字符串。

默认值

block

standardhigh_limit 格式在 Neo4j 5.23 中已弃用。

db.relationship_grouping_threshold

表 120. db.relationship_grouping_threshold

描述

将节点视为密集的关联计数阈值。

有效值

最小值为 1 的整数。

默认值

50

db.store.files.preallocate

表 121. db.store.files.preallocate

描述

指定 Neo4j 是否应在存储文件增长时尝试预分配它们。

有效值

一个布尔值。

默认值

true

db.temporal.timezone

表 122. db.temporal.timezone

描述

用于时间函数的数据库时区。所有未明确指定时区而创建的 Time 和 DateTime 值都将使用此配置的默认时区。

有效值

描述时区的字符串,可以由偏移量(例如 +02:00)或名称(例如 Europe/Stockholm)描述。

默认值

Z

db.track_query_cpu_time

表 123. db.track_query_cpu_time

描述

启用或禁用对查询在 CPU 上主动执行时间的跟踪。调用 SHOW TRANSACTIONS 将显示时间,但不会显示在 query.log 中。
如果您希望将 CPU 时间记录到 query.log 中,请设置 db.track_query_cpu_time=true

有效值

一个布尔值。

默认值

false

DBMS 设置

DBMS 设置会影响整个 Neo4j DBMS。您可以使用它们来设置默认数据库、DBMS 时区、种子提供者列表以及数据库的最大数量。DBMS 设置在集群/DBMS 的所有配置文件中必须保持一致。

initial.dbms.default_database

表 124. initial.dbms.default_database

描述

默认数据库的名称。
注意:此设置与 dbms.default_database 不同,后者用于在 Neo4j 4.x 及更早版本中设置默认数据库。

initial.dbms.default_database 设置旨在在 DBMS 创建**之前**设置默认数据库。一旦创建,此设置就不再有效。

要设置默认数据库,请改用 dbms.setDefaultDatabase() 过程。

有效值

一个有效的数据库名称,仅包含字母、数字、点和破折号,长度在 3 到 63 个字符之间,以字母或数字开头,但不能以 system 命名。

默认值

neo4j

dbms.db.timezone

表 125. dbms.db.timezone

描述

数据库时区。除其他外,此设置会影响监控程序。

有效值

以下之一:[UTC, SYSTEM]。

默认值

UTC

dbms.databases.seed_from_uri_providers

表 126. dbms.databases.seed_from_uri_providers

描述

可以从存储在特定源 URI 的现有 seed(数据库备份或转储)创建数据库。com.neo4j.dbms.seeding.SeedProvider 的不同实现支持各种类型的种子源。

以下值可用:CloudSeedProviderFileSeedProviderS3SeedProviderURLConnectionSeedProvider

  • CloudSeedProvider 支持以 s3azbgs 定址的种子。

  • FileSeedProvider 支持以 file 定址的种子。

  • S3SeedProvider 支持以 s3 定址的种子,但已弃用,并且仅在 Cypher 5 中可用。

  • URLConnectionSeedProvider 支持以 ftphttphttps 定址的种子。

此列表指定已启用的种子提供者。如果一个种子源(URI 方案)受列表中多个提供者支持,则将使用第一个匹配的提供者。如果列表设置为空,则 URI 功能的种子实际上被禁用。有关更多信息,请参阅从 URI 种子

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

CloudSeedProvider 2025.01 中已更改

dbms.max_databases

表 127. dbms.max_databases

描述

最大数据库数量。

有效值

一个长整型,最小值为 2

默认值

100

dbms.usage_report.enabled

表 128. dbms.usage_report.enabled

描述

使用数据报告。

有效值

一个布尔值。

默认值

true

导入设置

导入设置控制 LOAD CSV 使用的内部缓冲区大小以及 CSV 文件中引号的转义。

db.import.csv.buffer_size

表 129. db.import.csv.buffer_size

描述

LOAD CSV 使用的内部缓冲区大小(以字节为单位)。如果 CSV 文件包含大字段,则可能需要增加此值。

有效值

一个长整型,最小值为 1

默认值

2097152

db.import.csv.legacy_quote_escaping

表 130. db.import.csv.legacy_quote_escaping

描述

选择是否符合标准 https://tools.ietf.org/html/rfc4180 来解释使用 LOAD CSV 加载的 CSV 文件中的转义引号字符。将其设置为 false 将使用标准,将重复引号“""”解释为单个内联引号,而 true 将使用 Neo4j 3.0 和 3.1 最初支持的旧版约定,允许反斜杠在字段中包含内联引号。

有效值

一个布尔值。

默认值

true

索引设置

索引设置控制全文索引和后台索引采样(块大小限制和样本大小)。有关更多信息,请参阅索引配置

db.index.fulltext.default_analyzer

表 131. db.index.fulltext.default_analyzer

描述

全文索引默认应使用的分析器名称。

有效值

一个字符串。

默认值

standard-no-stop-words

db.index.fulltext.eventually_consistent

表 132. db.index.fulltext.eventually_consistent

描述

全文索引默认是否最终一致。

有效值

一个布尔值。

默认值

false

db.index.fulltext.eventually_consistent_apply_parallelism

表 133. db.index.fulltext.eventually_consistent_apply_parallelism

描述

处理最终一致全文索引的排队索引更新的线程数。

有效值

一个最小值为 1 的整数。

默认值

1

db.index.fulltext.eventually_consistent_refresh_interval

表 134. db.index.fulltext.eventually_consistent_refresh_interval

描述

最终一致全文索引的刷新频率(更改保证可见)。如果设置为 0,则由应用最终一致全文索引更新的线程完成刷新。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s)。

默认值

0s

db.index.fulltext.eventually_consistent_refresh_parallelism

表 135. db.index.fulltext.eventually_consistent_refresh_parallelism

描述

可以并行执行全文索引刷新的线程数,即可以并行刷新的最终一致全文索引的数量。

有效值

一个最小值为 1 的整数。

默认值

1

db.index.fulltext.eventually_consistent_index_update_queue_max_length

表 136. db.index.fulltext.eventually_consistent_index_update_queue_max_length

描述

全文索引的最终一致模式通过将索引更新排队,以便稍后在后台线程中应用。此新构建器设置了在任何给定时间点允许此队列中索引更新的最大数量。达到此限制时,提交过程将减慢并等待索引更新应用线程在队列中腾出更多空间。

有效值

一个在 150000000 范围内的整数。

默认值

10000

db.index_sampling.background_enabled

表 137. db.index_sampling.background_enabled

描述

启用或禁用后台索引采样。

有效值

一个布尔值。

默认值

true

db.index_sampling.sample_size_limit

表 138. db.index_sampling.sample_size_limit

描述

索引采样块大小限制。

有效值

一个在 10485762147483647 范围内的整数。

默认值

8388608

db.index_sampling.update_percentage

表 139. db.index_sampling.update_percentage

描述

在触发给定索引的采样之前所需的索引更新占总索引大小的百分比。

有效值

一个最小值为 0 的整数。

默认值

5

日志设置

Neo4j 有两个不同的日志配置文件,一个用于 neo4j.log,其中包含有关 Neo4j 的一般信息;另一个配置文件用于通过 Log4j 2 进行的所有其他类型的日志记录(除了由 Java 虚拟机 (JVM) 处理的 gc.log)。有关更多信息,请参阅日志记录

db.logs.query.annotation_data_format

表 140. db.logs.query.annotation_data_format

描述

用于 JSON 注释数据的格式。

CYPHER

格式为 Cypher 映射。例如 {foo: 'bar', baz: {k: 1}}

JSON

格式为 JSON 映射。例如 {"foo": "bar", "baz": {"k": 1}}

FLAT_JSON

格式为扁平化 JSON 映射。例如 {"foo": "bar", "baz.k": 1}

这仅在查询日志为 JSON 格式时有效。

有效值

以下之一:[CYPHER, JSON, FLAT_JSON]。

默认值

JSON 2025.01 中已更改

db.logs.query.early_raw_logging_enabled

表 141. db.logs.query.early_raw_logging_enabled

描述

记录查询文本和参数,而不混淆密码。这允许在解析开始之前更早地记录查询。

有效值

一个布尔值。

默认值

false

db.logs.query.enabled

表 142. db.logs.query.enabled

描述

记录已执行的查询。有效值为 OFFINFOVERBOSE

OFF

不记录。

INFO

在执行结束时记录执行时间超过配置阈值 db.logs.query.threshold 的查询。

VERBOSE

在执行开始和结束时记录查询,无论 db.logs.query.threshold 的值如何。

日志条目写入查询日志。

此功能在 Neo4j 企业版中可用。

有效值

以下之一:[OFF, INFO, VERBOSE]。

默认值

VERBOSE

db.logs.query.max_parameter_length

表 143. db.logs.query.max_parameter_length

描述

设置日志中每个参数的最大字符长度。此设置仅在 db.logs.query.parameter_logging_enabled = true 时生效。

有效值

一个整数。

默认值

2147483647

db.logs.query.obfuscate_literals

表 144. db.logs.query.obfuscate_literals

描述

在写入日志之前混淆查询的所有字面量。请注意,节点标签、关系类型和映射属性键仍然显示。更改此设置不会影响已缓存的查询。因此,如果您希望此更改立即生效,您还必须调用 CALL db.clearQueryCaches()

有效值

一个布尔值。

默认值

false

请记住,如果 Neo4j 收到无法解析的格式错误的查询,它无法混淆其字面量(因为它不知道哪些部分是字面量),因此查询文本将不会包含在任何日志记录中。

db.logs.query.parameter_logging_enabled

表 145. db.logs.query.parameter_logging_enabled

描述

记录正在日志记录的已执行查询的参数。

有效值

一个布尔值。

默认值

true

db.logs.query.plan_description_enabled

表 146. db.logs.query.plan_description_enabled

描述

记录查询计划描述表,用于调试。

有效值

一个布尔值。

默认值

false

db.logs.query.threshold

表 147. db.logs.query.threshold

描述

如果查询执行时间超过此阈值,则在查询完成后记录该查询 - 假设查询日志设置为 INFO。默认为 0 秒,即所有查询都将被记录。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

0s

db.logs.query.transaction.enabled

表 148. db.logs.query.transaction.enabled

描述

记录事务的开始和结束。有效值为“OFF”、“INFO”或“VERBOSE”。OFF:不记录。INFO:记录执行时间超过配置阈值 db.logs.query.transaction.threshold 的事务的开始和结束。VERBOSE:记录所有事务的开始和结束。日志条目写入查询日志。

有效值

以下之一:[OFF, INFO, VERBOSE]。

默认值

OFF

db.logs.query.transaction.threshold

表 149. db.logs.query.transaction.threshold

描述

如果事务的打开时间超过此阈值,则在事务完成后记录该事务 — 前提是事务日志记录 (db.logs.query.transaction.enabled) 设置为 INFO。默认为 0 秒(所有事务均记录)。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

0s

dbms.logs.http.enabled

表 150. dbms.logs.http.enabled

描述

启用 HTTP 请求日志记录。

有效值

一个布尔值。

默认值

false

server.logs.config

表 151. server.logs.config

描述

调试、查询、http 和安全日志的日志配置路径。

有效值

一个路径。如果为相对路径,则从 server.directories.configuration 解析。

默认值

server-logs.xml

server.logs.debug.enabled

表 152. server.logs.debug.enabled

描述

启用调试日志。

有效值

一个布尔值。

默认值

true

server.logs.gc.enabled

表 153. server.logs.gc.enabled

描述

启用 GC 日志记录。

有效值

一个布尔值。

默认值

false

server.logs.gc.options

表 154. server.logs.gc.options

描述

GC 日志记录选项。

有效值

一个字符串。

默认值

-Xlog:gc*,safepoint,age*=trace

server.logs.gc.rotation.keep_number

表 155. server.logs.gc.rotation.keep_number

描述

要保留的 GC 日志数量。

有效值

一个整数。

默认值

5

server.logs.gc.rotation.size

表 156. server.logs.gc.rotation.size

描述

保留的每个 GC 日志的大小。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

20.00MiB

server.logs.user.config

表 157. server.logs.user.config

描述

用户日志的日志配置路径。

有效值

一个路径。如果为相对路径,则从 server.directories.configuration 解析。

默认值

user-logs.xml

内存设置

内存设置控制分配给 Neo4j 的内存量及其使用方式。建议对这些设置进行一定量的测试和调整,以找出可用内存的最佳分配。有关如何调整这些设置的更多信息,请参阅内存配置磁盘、RAM 和其他提示以及垃圾收集器调优

db.memory.pagecache.warmup.enable

表 158. db.memory.pagecache.warmup.enable

描述

页面缓存可以配置为对加载的页面执行使用采样,这可以用于构建活动负载配置文件。根据该配置文件,页面可以在重启、复制等时重新加载。此设置允许禁用该行为。此功能在 Neo4j 企业版中可用。

有效值

一个布尔值。

默认值

true

db.memory.pagecache.warmup.preload

表 159. db.memory.pagecache.warmup.preload

描述

页面缓存预热可配置为预取文件,最好是在缓存大小大于存储大小时。要预取的文件可以通过“dbms.memory.pagecache.warmup.preload.allowlist”进行过滤。启用此功能会禁用通过配置文件进行预热。

有效值

一个布尔值。

默认值

false

db.memory.pagecache.warmup.preload.allowlist

表 160. db.memory.pagecache.warmup.preload.allowlist

描述

页面缓存预热预取文件允许列表正则表达式。默认匹配所有文件。

有效值

一个字符串。

默认值

.*

db.memory.pagecache.warmup.profile.interval

表 161. db.memory.pagecache.warmup.profile.interval

描述

页面缓存的分析频率。准确的配置文件允许页面缓存在重启后进行主动预热,从而缩短达到性能的平均时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

1m

db.memory.transaction.max

表 162. db.memory.transaction.max

描述

限制单个事务可消耗的内存量,以字节为单位(或带“k”后缀的千字节,带“m”的兆字节,带“g”的千兆字节)。零表示“最大可能值”。

有效值

一个字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 1.00MiB 或为 0B

默认值

0B

db.memory.transaction.total.max

表 163. db.memory.transaction.total.max

描述

限制单个数据库中所有事务可消耗的内存量,以字节为单位(或带“k”后缀的千字节,带“m”的兆字节,带“g”的千兆字节)。零表示“无限制”。

有效值

一个字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 10.00MiB 或为 0B

默认值

0B

server.db.query_cache_size

表 164. server.db.query_cache_size

描述

每个数据库缓存的 Cypher 查询执行计划的数量。缓存中可以保留的最大查询计划数量为 数据库数量 * server.db.query_cache_size。如果有 10 个数据库且 server.db.query_cache_size=1000,则假设每个数据库都接收到足以填满其缓存的查询,则实例上总共可以保留 10000 个计划。

有效值

一个最小值为 0 的整数。

默认值

1000

已替换为

dbms.memory.tracking.enable

表 165. dbms.memory.tracking.enable

描述

启用堆外内存和堆上内存跟踪。对于集群不应设置为 false

有效值

一个布尔值。

默认值

true

dbms.memory.transaction.total.max

表 166. dbms.memory.transaction.total.max

描述

限制所有正在运行的事务可消耗的内存量,以字节为单位(或带“k”后缀的千字节,带“m”的兆字节,带“g”的千兆字节)。零表示“无限制”。默认为堆大小限制的 70%。

有效值

一个字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 10.00MiB 或为 0B

默认值

server.memory.heap.initial_size

表 167. server.memory.heap.initial_size

描述

初始堆大小。默认情况下,根据可用的系统资源进行计算。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

server.memory.heap.max_size

表 168. server.memory.heap.max_size

描述

最大堆大小。默认情况下,根据可用的系统资源进行计算。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

server.memory.pagecache.directio

表 169. server.memory.pagecache.directio

描述

对页面缓存使用直接 I/O。此设置仅在 Linux 上受支持,且仅适用于使用平台对齐页面大小的记录格式子集。

有效值

一个布尔值。

默认值

false

server.memory.pagecache.flush.buffer.enabled

表 170. server.memory.pagecache.flush.buffer.enabled

描述

页面缓存可以配置为使用临时缓冲区进行刷新。它用于尽可能将几个缓存页面序列组合成一个更大的缓冲区,以最大程度地减少执行的单个 IOPS 数量,并更好地利用可用的 I/O 资源,尤其是在这些资源受限的情况下。

有效值

一个布尔值。

默认值

false

server.memory.pagecache.flush.buffer.size_in_pages

表 171. server.memory.pagecache.flush.buffer.size_in_pages

描述

页面缓存可配置为使用临时缓冲区进行刷新。它用于尽可能将多个缓存页面序列组合成一个更大的缓冲区,以最大程度地减少执行的单个 IOPS 数量,并更好地利用可用的 I/O 资源,尤其是在这些资源受限的情况下。使用此设置配置单个文件刷新缓冲区大小(以页面为单位,8KiB)。为了在页面缓存刷新期间利用此缓冲区,应启用缓冲刷新。

有效值

一个在 1512 范围内的整数。

默认值

128

server.memory.pagecache.scan.prefetchers

表 172. server.memory.pagecache.scan.prefetchers

描述

在顺序扫描时用于预取数据的最大工作线程数。设置为“0”以禁用扫描的预取。

有效值

一个在 0255 范围内的整数。

默认值

4

server.memory.pagecache.size

表 173. server.memory.pagecache.size

描述

用于映射存储文件的内存量。如果 Neo4j 在专用服务器上运行,则通常建议为操作系统留出大约 2-4 GB,为 JVM 留出足够的堆以保存所有事务状态和查询上下文,然后将其余部分留给页面缓存。如果未配置页面缓存内存,则根据可用系统资源计算启发式设置。默认情况下,页面缓存的大小将是可用 RAM 的 50% 减去最大堆大小。页面缓存的大小也不会超过最大堆大小的 70 倍(由于堆中页面缓存的一些开销)。

有效值

一个字节大小(有效乘数有 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

server.memory.query_cache.sharing_enabled

表 174. server.memory.query_cache.sharing_enabled

描述

启用不同数据库之间的缓存空间共享。启用此选项后,数据库将共享缓存空间,但不共享缓存条目。这意味着数据库可以从共享缓存存储和检索条目,但它不能检索由另一个数据库生成的条目。但是,数据库可以根据受限的缓存大小和缓存逐出策略,根据需要逐出其他数据库的条目。本质上,数据库可以竞争缓存空间,但不能观察彼此的条目。

当此选项启用时,所有数据库可用的缓存空间由 server.memory.query_cache.shared_cache_num_entries 配置。当此选项禁用时,每个独立数据库可用的缓存空间由 server.memory.query_cache.per_db_cache_num_entries 配置。

有效值

一个布尔值。

默认值

false

server.memory.query_cache.shared_cache_num_entries

表 175. server.memory.query_cache.shared_cache_num_entries

描述

所有数据库缓存的查询数量。缓存中可以保留的最大查询数量正好是 server.memory.query_cache.shared_cache_num_entries。此设置仅在 server.memory.query_cache.sharing_enabled 设置为 true 时决定缓存大小。

有效值

一个最小值为 0 的整数。

默认值

1000

server.memory.query_cache.per_db_cache_num_entries

表 176. server.memory.query_cache.per_db_cache_num_entries

描述

每个数据库缓存的查询数量。缓存中可以保留的最大查询数量为 数据库数量 * server.memory.query_cache.per_db_cache_num_entries。如果有 10 个数据库且 server.memory.query_cache.per_db_cache_num_entries=1000,则缓存总共可以保留 10000 个计划。此设置仅在 server.memory.query_cache.sharing_enabled 设置为 false 时决定缓存大小。

有效值

一个最小值为 0 的整数。

默认值

1000

指标设置

指标设置控制 Neo4j 是否记录指标、记录哪些指标、如何记录以及如何公开它们。要更好地理解指标设置以及如何配置它们,请参阅指标

server.metrics.csv.enabled

表 177. server.metrics.csv.enabled

描述

设置为 true 以启用将指标导出到 CSV 文件。

有效值

一个布尔值。

默认值

true

server.metrics.csv.interval

表 178. server.metrics.csv.interval

描述

CSV 文件的报告间隔。即,向 CSV 文件附加新行(包含数字)的频率。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1ms

默认值

30s

server.metrics.csv.rotation.compression

表 179. server.metrics.csv.rotation.compression

描述

决定 CSV 历史文件使用的压缩方式。

有效值

以下之一:[NONE, ZIP, GZ]。

默认值

ZIP 2025.01 中已更改

server.metrics.csv.rotation.keep_number

表 180. server.metrics.csv.rotation.keep_number

描述

CSV 文件的最大历史文件数量。

有效值

最小值为 1 的整数。

默认值

7

server.metrics.csv.rotation.size

表 181. server.metrics.csv.rotation.size

描述

CSV 文件自动轮转的文件大小(以字节为单位)。如果设置为零,则不会发生轮转。接受二进制后缀 kmg

有效值

一个字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),范围在 0B8388608.00TiB 之间。

默认值

10.00MiB

server.metrics.enabled

表 182. server.metrics.enabled

描述

启用指标。将其设置为 false 将关闭所有指标。

有效值

一个布尔值。

默认值

true

server.metrics.filter

表 183. server.metrics.filter

描述

指定应通过逗号分隔的通配符模式列表启用哪些指标。只有匹配过滤器的指标才会启用。例如 *check_point*,neo4j.page_cache.evictions 将启用所有检查点指标和页面缓存逐出指标。

有效值

一个逗号分隔的列表,其中每个元素都是一个简单的通配符模式,可以使用 *?

默认值

*bolt.connections*,*bolt.messages_received*,*bolt.messages_started*,*dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*cluster.raft.is_leader,*cluster.raft.last_leader_message,*cluster.raft.replication_attempt,*cluster.raft.replication_fail,*cluster.raft.last_applied,*cluster.raft.last_appended,*cluster.raft.append_index,*cluster.raft.commit_index,*cluster.raft.applied_index,*cluster.internal.discovery.memberset.left,*cluster.internal.discovery.crdt.gossip_id_data.size,*cluster.internal.discovery.crdt.server_data.size,*cluster.internal.discovery.crdt.database_data.size,*cluster.internal.discovery.crdt.leader_data.size,*cluster.internal.discovery.crdt.total_merge_operations,*cluster.internal.discovery.crdt.total_update_operations,*cluster.internal.discovery.gossip.incoming_queue_size,*cluster.internal.discovery.gossip.total_received_data,*cluster.internal.discovery.gossip.total_sent_data,*cluster.internal.discovery.gossip.uncontactable_members_exist,*check_point.*,*cypher.replan_events,*cypher.cache*,*ids_in_use*,*.neo4j.count.*,*pool.transaction.*.total_used,*pool.transaction.*.used_heap,*pool.transaction.*.used_native,*store.size*,*transaction.active_read,*transaction.active_write,*transaction.committed*,*transaction.last_committed_tx_id,*transaction.peak_concurrent,*transaction.rollbacks*,*page_cache.hit*,*page_cache.page_faults,*page_cache.usage_ratio,*vm.file.descriptors.count,*vm.gc.time.*,*vm.heap.used,*vm.memory.buffer.direct.used,*vm.memory.pool.g1_eden_space,*vm.memory.pool.g1_old_gen,*vm.pause_time,*vm.thread*,*db.query.execution*,*protocol* 2025.03 中已更改

server.metrics.graphite.enabled

表 184. server.metrics.graphite.enabled

描述

设置为 true 以启用将指标导出到 Graphite。

有效值

一个布尔值。

默认值

false

server.metrics.graphite.interval

表 185. server.metrics.graphite.interval

描述

Graphite 的报告间隔。即,多久向 Graphite 发送一次更新的指标。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

30s

server.metrics.graphite.server

表 186. server.metrics.graphite.server

描述

Graphite 服务器的主机名或 IP 地址。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

:2003

server.metrics.jmx.enabled

表 187. server.metrics.jmx.enabled

描述

设置为 true 以启用 JMX 指标端点。

有效值

一个布尔值。

默认值

true

server.metrics.prefix

表 188. server.metrics.prefix

描述

报告的指标字段名的通用前缀。

有效值

一个字符串。

默认值

neo4j

server.metrics.prometheus.enabled

表 189. server.metrics.prometheus.enabled

描述

设置为 true 以启用 Prometheus 端点。

有效值

一个布尔值。

默认值

false

server.metrics.prometheus.endpoint

表 190. server.metrics.prometheus.endpoint

描述

用作 Prometheus 端点的主机名和端口。

有效值

一个套接字地址,格式为 hostname:porthostname:port。如果缺失,则从 server.default_listen_address 获取。

默认值

localhost:2004

Neo4j 浏览器和客户端设置

Neo4j 浏览器和客户端设置仅适用于 Neo4j 浏览器和客户端。

browser.allow_outgoing_connections

表 191. browser.allow_outgoing_connections

描述

配置 Neo4j 浏览器出站连接策略。

有效值

一个布尔值。

默认值

true

browser.credential_timeout

表 192. browser.credential_timeout

描述

配置 Neo4j 浏览器在此空闲期后使已登录用户超时。将其设置为 0 表示无限制。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s)。

默认值

0s

browser.post_connect_cmd

表 193. browser.post_connect_cmd

描述

Neo4j 浏览器成功连接到此服务器时要运行的命令。使用分号分隔多个命令。

有效值

一个字符串。

默认值

browser.remote_content_hostname_whitelist

表 194. browser.remote_content_hostname_whitelist

描述

Neo4j 浏览器被允许从中获取内容的主机白名单。

有效值

一个字符串。

默认值

guides.neo4j.com,localhost

browser.retain_connection_credentials

表 195. browser.retain_connection_credentials

描述

配置 Neo4j 浏览器是否存储用户凭据。

有效值

一个布尔值。

默认值

true

browser.retain_editor_history

表 196. browser.retain_editor_history

描述

配置 Neo4j 浏览器是否存储用户编辑器历史记录。

有效值

一个布尔值。

默认值

true

client.allow_telemetry

表 197. client.allow_telemetry

描述

配置客户端应用程序(如 Browser 和 Bloom)发送产品分析数据。

有效值

一个布尔值。

默认值

true

Kubernetes 设置

Kubernetes 设置用于配置在 Kubernetes 上运行的集群,其中每个服务器都作为 Kubernetes 服务运行。其他服务器的地址可以使用列表服务 API 获取,如 Kubernetes API 文档中所述。有关更多信息,请参阅Kubernetes 中的发现

dbms.kubernetes.address

表 198. dbms.kubernetes.address

描述

Kubernetes API 的地址。

有效值

格式为 hostname:porthostname:port 的套接字地址。

默认值

kubernetes.default.svc:443

dbms.kubernetes.ca_crt

表 199. dbms.kubernetes.ca_crt

描述

Kubernetes API 的 CA 证书文件位置。

有效值

一个路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/ca.crt

dbms.kubernetes.cluster_domain

表 200. dbms.kubernetes.cluster_domain

描述

Kubernetes 集群域。

有效值

一个字符串。

默认值

cluster.local

dbms.kubernetes.label_selector

表 201. dbms.kubernetes.label_selector

描述

Kubernetes API 的 LabelSelector。

有效值

一个字符串。

默认值

dbms.kubernetes.namespace

表 202. dbms.kubernetes.namespace

描述

Kubernetes API 命名空间的文件位置。

有效值

一个路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/namespace

dbms.kubernetes.discovery.service_port_name

表 203. dbms.kubernetes.discovery.service_port_name

描述

用于 Kubernetes API 发现的服务端口名称。

有效值

一个字符串。

默认值

transaction

dbms.kubernetes.token

表 204. dbms.kubernetes.token

描述

Kubernetes API 令牌的文件位置。

有效值

一个路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/token

安全设置

安全设置用于配置 Neo4j 部署的安全性。有关 Neo4j 安全性的详细信息,请参阅安全部分。

dbms.security.allow_csv_import_from_file_urls

表 205. dbms.security.allow_csv_import_from_file_urls

描述

确定 Cypher 是否允许在使用 LOAD CSV 加载数据时使用文件 URL。将此值设置为 false 将导致 Neo4j 无法执行从文件系统加载数据的 LOAD CSV 子句。

有效值

一个布尔值。

默认值

true

dbms.security.auth_cache_max_capacity

表 206. dbms.security.auth_cache_max_capacity

描述

认证和授权缓存的最大容量(分别)。

有效值

一个整数。

默认值

10000

dbms.security.auth_cache_ttl

表 207. dbms.security.auth_cache_ttl

描述

使用外部认证提供商(OIDC、LDAP 或插件)时,缓存的认证和授权信息的生存时间 (TTL)。将 TTL 设置为 0 将禁用认证缓存。在使用 LDAP 认证提供商时禁用缓存需要使用 LDAP 系统账户来解析授权信息。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10m

dbms.security.auth_cache_use_ttl

表 208. dbms.security.auth_cache_use_ttl

描述

为外部认证提供商(OIDC、LDAP 或插件)启用基于时间的认证和授权信息缓存逐出。禁用此设置将使缓存永久存在,只有当dbms.security.auth_cache_max_capacity超出时才会被逐出。

有效值

一个布尔值。

默认值

true

dbms.security.auth_enabled

表 209. dbms.security.auth_enabled

描述

启用访问 Neo4j 的认证要求。

有效值

一个布尔值。

默认值

true

dbms.security.auth_minimum_password_length

表 210. dbms.security.auth_minimum_password_length

描述

密码所需的最小字符数。

有效值

最小值为 1 的整数。

默认值

8

dbms.security.auth_lock_time

表 211. dbms.security.auth_lock_time

描述

在配置的不成功认证尝试次数后,用户账户应锁定的时间量。被锁定的用户将无法登录,直到锁定期限过期,即使提供了正确的凭据。不建议将此配置选项设置为低值,因为它可能使攻击者更容易暴力破解密码。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 0s

默认值

5s

dbms.security.auth_max_failed_attempts

表 212. dbms.security.auth_max_failed_attempts

描述

在对用户施加由dbms.security.auth_lock_time定义的时间量锁定之前,不成功的认证尝试的最大次数。被锁定的用户将无法登录,直到锁定期限过期,即使提供了正确的凭据。不建议将此配置选项设置为小于 3 的值,因为它可能使攻击者更容易暴力破解密码。

有效值

一个最小值为 0 的整数。

默认值

3

dbms.security.authentication_providers

表 213. dbms.security.authentication_providers

描述

一个包含用户和角色的安全认证提供商列表。这可以是内置的 nativeldap 提供商中的任何一个,也可以是外部提供的插件,其自定义名称前缀为 plugin-,例如 plugin-<AUTH_PROVIDER_NAME>。当尝试登录时,它们将按照给定顺序进行查询。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

native

dbms.security.authorization_providers

表 214. dbms.security.authorization_providers

描述

一个包含用户和角色的安全授权提供商列表。这可以是内置的 nativeldap 提供商中的任何一个,也可以是外部提供的插件,其自定义名称前缀为 plugin-,例如 plugin-<AUTH_PROVIDER_NAME>。当尝试登录时,它们将按照给定顺序进行查询。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

native

dbms.security.cluster_status_auth_enabled

表 215. dbms.security.cluster_status_auth_enabled

描述

访问因果集群状态端点需要授权。

有效值

一个布尔值。

默认值

true

dbms.security.http_access_control_allow_origin

表 216. dbms.security.http_access_control_allow_origin

描述

通过任何 HTTP 或 HTTPS 连接器发送的 Access-Control-Allow-Origin 标头的值。默认值为 '*',这允许最广泛的兼容性。请注意,此处提供的任何 URI 都会将 HTTP/HTTPS 访问限制到仅该 URI。

有效值

一个字符串。

默认值

*

dbms.security.http_auth_allowlist

表 217. dbms.security.http_auth_allowlist

描述

定义了一个 HTTP 路径允许列表,其中不需要 Neo4j 认证。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

/,/browser.*

dbms.security.http_strict_transport_security

表 218. dbms.security.http_strict_transport_security

描述

HTTP 严格传输安全 (HSTS) 响应标头的值。此标头告诉浏览器网页应仅使用 HTTPS 而非 HTTP 访问。它附加到每个 HTTPS 响应。默认不设置此值,因此不会发送“Strict-Transport-Security”标头。预期值包含“max-age”、“includeSubDomains”和“preload”等指令。

有效值

一个字符串。

默认值

dbms.security.http_static_content_security_policy_header

表 219. dbms.security.http_static_content_security_policy_header

描述

定义要返回到静态端点内容的 Content-Security-Policy 标头。

有效值

一个字符串。

默认值

default-src 'self'; script-src 'self' cdn.segment.com canny.io; img-src 'self' guides.neo4j.com data:; style-src 'self' fonts.googleapis.com 'unsafe-inline'; font-src 'self' fonts.gstatic.com; base-uri 'none'; object-src 'none'; frame-ancestors 'none'; connect-src 'self' api.canny.io api.segment.io ws: wss: http: https

dbms.security.key.name

表 220. dbms.security.key.name

描述

256 位 AES 加密密钥的名称,用于对称加密。

有效值

一个字符串。

默认值

aesKey

dbms.security.keystore.password

表 221. dbms.security.keystore.password

描述

访问密钥库的密码,该密钥库包含用于对称加密的 256 位 AES 加密密钥。

有效值

一个安全的字符串。

默认值

dbms.security.keystore.path

表 222. dbms.security.keystore.path

描述

密钥库的位置,该密钥库包含用于系统数据库中秘密对称加密的 256 位 AES 加密密钥。

有效值

一个路径。

默认值

dbms.security.ldap.authentication.attribute

表 223. dbms.security.ldap.authentication.attribute

描述

查找用户时要使用的属性。使用此设置需要将dbms.security.ldap.authentication.search_for_attribute设置为 true,因此需要配置dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password

有效值

与模式 [A-Za-z0-9-]* 匹配的字符串(必须是有效的 LDAP 属性名称,仅包含字母 [A-Za-z]、数字 [0-9] 和连字符 [-])。

默认值

samaccountname

dbms.security.ldap.authentication.cache_enabled

表 224. dbms.security.ldap.authentication.cache_enabled

描述

确定是否应缓存通过 LDAP 服务器进行认证的结果。缓存用于限制已成功认证的用户通过网络进行的 LDAP 请求数量。只要缓存条目处于活动状态(请参阅dbms.security.auth_cache_ttl),用户就可以根据现有缓存条目(而不是通过 LDAP 服务器)进行认证。将其设置为true的一个重要结果是,Neo4j 然后需要缓存凭据的哈希版本以执行凭据匹配。此哈希是使用加密哈希函数和随机盐值完成的。最好根据 Neo4j 实例部署的组织的安全标准,有意识地决定此方法是否可接受。

有效值

一个布尔值。

默认值

true

dbms.security.ldap.authentication.mechanism

表 225. dbms.security.ldap.authentication.mechanism

描述

LDAP 认证机制。这可以是 simple 或 JNDI 支持的 SASL 机制之一,例如 DIGEST-MD5simple 是基本的用户名和密码认证,SASL 用于更高级的机制。有关更多详细信息,请参阅 RFC 2251 LDAPv3 文档。

有效值

一个字符串。

默认值

simple

dbms.security.ldap.authentication.search_for_attribute

表 226. dbms.security.ldap.authentication.search_for_attribute

描述

通过搜索用户的唯一属性来执行认证。使用此设置需要配置dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password

有效值

一个布尔值。

默认值

false

dbms.security.ldap.authentication.user_dn_template

表 227. dbms.security.ldap.authentication.user_dn_template

描述

LDAP 用户 DN 模板。LDAP 对象通过其可分辨名称 (DN) 引用,用户 DN 是 LDAP 完全限定的唯一用户标识符。此设置用于根据登录时随认证令牌提交的用户主体生成符合 LDAP 目录模式的 LDAP DN。特殊令牌 {0} 是一个占位符,用户主体将替换到 DN 字符串中。

有效值

必须是包含“{0}”的字符串,才能理解在何处插入运行时认证主体。

默认值

uid={0},ou=users,dc=example,dc=com

dbms.security.ldap.authorization.access_permitted_group

表 228. dbms.security.ldap.authorization.access_permitted_group

描述

用户必须属于的 LDAP 组,才能获得对系统的任何访问权限。设置此项可限制对属于特定组的 LDAP 用户子集的访问。如果未设置此项,任何通过 LDAP 成功认证的用户都将拥有对 PUBLIC 角色的访问权限,以及通过dbms.security.ldap.authorization.group_to_role_mapping分配给他们的任何其他角色。

有效值

一个字符串。

默认值

dbms.security.ldap.authorization.group_membership_attributes

表 229. dbms.security.ldap.authorization.group_membership_attributes

描述

当启用 LDAP 授权时,用户对象上包含用于映射到角色的组的属性名称列表。当 dbms.ldap_authorization_nested_groups_enabledtrue 时,此设置将被忽略。

有效值

逗号分隔的列表,其中每个元素都是字符串,不能为空。

默认值

memberOf

dbms.security.ldap.authorization.group_to_role_mapping

表 230. dbms.security.ldap.authorization.group_to_role_mapping

描述

LDAP 组名到 Neo4j 角色名的授权映射。映射应格式化为分号分隔的键值对列表,其中键是 LDAP 组名,值是相应的角色名逗号分隔列表。例如:group1=role1;group2=role2;group3=role3,role4,role5 您也可以在组名周围使用空格和引号,使此映射更具可读性,例如

`dbms.security.ldap.authorization.group_to_role_mapping`=\
         "cn=Neo4j Read Only,cn=users,dc=example,dc=com"      = reader;    \
         "cn=Neo4j Read-Write,cn=users,dc=example,dc=com"     = publisher; \
         "cn=Neo4j Schema Manager,cn=users,dc=example,dc=com" = architect; \
         "cn=Neo4j Administrator,cn=users,dc=example,dc=com"  = admin

有效值

必须是分号分隔的键值对列表或空字符串。

默认值

dbms.security.ldap.authorization.nested_groups_enabled

表 231. dbms.security.ldap.authorization.nested_groups_enabled

描述

此设置确定是否将处理多个 LDAP 搜索结果(这是查找嵌套组所必需的)。如果设置为true,则不再使用用户对象上的属性来确定组成员资格(如dbms.security.ldap.authorization.group_membership_attributes所指定),user对象将仅用于确定用户的可分辨名称,该名称随后将与dbms.security.ldap.authorization.user_search_filter一起使用,以执行嵌套组搜索。结果组搜索结果的可分辨名称将用于确定角色。

有效值

一个布尔值。

默认值

false

dbms.security.ldap.authorization.nested_groups_search_filter

表 232. dbms.security.ldap.authorization.nested_groups_search_filter

描述

用于查找用户所属的嵌套组的搜索模板。过滤器应包含占位符标记{0},它将被替换为用户的可分辨名称(通过dbms.security.ldap.authorization.user_search_filter为指定用户主体找到)。默认值指定 Active Directory 的 LDAP_MATCHING_RULE_IN_CHAIN(又称 1.2.840.113556.1.4.1941)实现,该实现将遍历指定用户的组成员资格祖先。

有效值

一个字符串。

默认值

(&(objectclass=group)(member:1.2.840.113556.1.4.1941:={0}))

dbms.security.ldap.authorization.system_password

表 233. dbms.security.ldap.authorization.system_password

描述

dbms.security.ldap.authorization.use_system_accounttrue时,用于授权搜索的 LDAP 系统账户密码。

有效值

一个安全的字符串。

默认值

dbms.security.ldap.authorization.system_username

表 234. dbms.security.ldap.authorization.system_username

描述

dbms.security.ldap.authorization.use_system_accounttrue时,用于授权搜索的 LDAP 系统账户用户名。请注意,dbms.security.ldap.authentication.user_dn_template将不适用于此用户名,因此您可能需要指定完整的 DN。

有效值

一个字符串。

默认值

dbms.security.ldap.authorization.use_system_account

表 235. dbms.security.ldap.authorization.use_system_account

描述

使用系统账户而不是用户自己的账户执行 LDAP 搜索以获取授权信息。如果将其设置为 false(默认),则在认证后,将直接使用与用户自己的账户绑定的 LDAP 上下文执行组成员资格搜索。映射的角色将被缓存,缓存时间为dbms.security.auth_cache_ttl,然后过期,需要重新认证。为了避免频繁地重新认证会话,您可能希望将此选项与相对较长的认证缓存过期时间一起设置。
注意:此选项仅在允许用户在目录中搜索自己的组成员资格属性时才有效。如果此选项设置为true,则将使用具有对目录中所有用户的读取访问权限的特殊系统账户用户执行搜索。您需要使用dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password设置指定此选项的用户名和密码。请注意,此账户只需对 LDAP 目录的相关部分具有读取访问权限,而无需对 Neo4j 或任何其他系统具有访问权限。

有效值

一个布尔值。

默认值

false

dbms.security.ldap.authorization.user_search_base

表 236. dbms.security.ldap.authorization.user_search_base

描述

当启用 LDAP 授权时,用于搜索用户对象的基础对象或命名上下文的名称。常见情况是,它与dbms.security.ldap.authentication.user_dn_template的最后一部分匹配。

有效值

不能为空的字符串。

默认值

ou=users,dc=example,dc=com

dbms.security.ldap.authorization.user_search_filter

表 237. dbms.security.ldap.authorization.user_search_filter

描述

当启用 LDAP 授权时,用于搜索用户主体的 LDAP 搜索过滤器。过滤器应包含占位符标记 {0},它将被替换为用户主体。

有效值

一个字符串。

默认值

(&(objectClass=*)(uid={0}))

dbms.security.ldap.connection_timeout

表 238. dbms.security.ldap.connection_timeout

描述

建立 LDAP 连接的超时时间。如果在给定时间内无法建立与 LDAP 服务器的连接,则尝试将中止。值为 0 表示使用网络协议(即 TCP)的超时值。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

30s

dbms.security.ldap.host

表 239. dbms.security.ldap.host

描述

用于认证和授权的 LDAP 服务器 URL。设置格式为 <protocol>://<hostname>:<port>,其中 hostname 是唯一必需的字段。协议支持的值为 ldap(默认)和 ldapsldap 的默认端口是 389,ldaps 的默认端口是 636。例如:ldaps://ldap.example.com:10389。您可能需要考虑使用 STARTTLS (dbms.security.ldap.use_starttls) 而不是 LDAPS 进行安全连接,在这种情况下,正确的协议是 ldap

有效值

一个字符串。

默认值

localhost

dbms.security.ldap.read_timeout

表 240. dbms.security.ldap.read_timeout

描述

LDAP 读取请求(即搜索)的超时时间。如果 LDAP 服务器在给定时间内未响应,则请求将中止。值为 0 表示无限期等待响应。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

30s

dbms.security.ldap.referral

表 241. dbms.security.ldap.referral

描述

创建连接时的 LDAP 引用行为。可以是 followignorethrow 之一。

  • follow 自动跟随任何引用

  • ignore 忽略任何引用

  • throw 抛出异常,这将导致认证失败。

有效值

一个字符串。

默认值

follow

dbms.security.ldap.use_starttls

表 242. dbms.security.ldap.use_starttls

描述

使用机会性 TLS 与 LDAP 服务器进行安全通信。首先将与 LDAP 服务器建立一个初始不安全连接,然后发出 STARTTLS 命令以协商将连接升级到 TLS,然后才开始认证。

有效值

一个布尔值。

默认值

false

dbms.security.log_successful_authentication

表 243. dbms.security.log_successful_authentication

描述

设置为将成功的认证事件记录到安全日志中。如果设置为 false,则只记录失败的认证事件,如果您发现成功的事件过多地填充日志,并且您不需要完整的审计功能,这可能会很有用。

有效值

一个布尔值。

默认值

true

dbms.security.logs.ldap.groups_at_debug_level_enabled

表 244. dbms.security.logs.ldap.groups_at_debug_level_enabled

描述

当设置为 true 时,将记录从 LDAP 服务器检索到的组。这仅在安全日志级别设置为 DEBUG 时生效。警告:强烈建议在生产环境中将此设置为 false,以防止记录敏感信息。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.audience

表 245. dbms.security.oidc.<provider>.audience

描述

id 令牌中 Audience (aud) 声明的预期值。

有效值

逗号分隔的列表,其中每个元素都是字符串,不能为空。

dbms.security.oidc.<provider>.auth_endpoint

表 246. dbms.security.oidc.<provider>.auth_endpoint

描述

OIDC 授权端点。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

URI

dbms.security.oidc.<provider>.auth_flow

表 247. dbms.security.oidc.<provider>.auth_flow

描述

要使用的 OIDC 流程。这通过发现端点向客户端公开。支持的值是 pkceimplicit

有效值

PKCE 或 IMPLICIT 之一。

默认值

PKCE

dbms.security.oidc.<provider>.auth_params

表 248. dbms.security.oidc.<provider>.auth_params

描述

授权端点所需的额外可选参数。请改用 params。映射是分号分隔的键值对列表。例如:k1=v1;k2=v2

有效值

一个简单的键值映射模式 k1=v1;k2=v2

默认值

{}

dbms.security.oidc.<provider>.authorization.group_to_role_mapping

表 249. dbms.security.oidc.<provider>.authorization.group_to_role_mapping

描述

从 IdP 组名到 Neo4j 角色名的授权映射。映射应格式化为分号分隔的键值对列表,其中键是 IdP 组名,值是相应的角色名逗号分隔列表。例如:group1=role1;group2=role2;group3=role3,role4,role5 您也可以在组名周围使用空格和引号,使此映射更具可读性,例如

dbms.security.oidc.<provider>.authorization.group_to_role_mapping=\
         "Neo4j Read Only"      = reader;    \
         "Neo4j Read-Write"     = publisher; \
         "Neo4j Schema Manager" = architect; \
         "Neo4j Administrator"  = admin

有效值

必须是分号分隔的键值对列表或空字符串。

dbms.security.oidc.<provider>.claims.groups

表 250. dbms.security.oidc.<provider>.claims.groups

描述

用作 Neo4j 中组列表的声明。这些可以是直接的 Neo4j 角色,也可以使用 dbms.security.oidc.<provider>.authorization.group_to_role_mapping 进行映射。JWT 声明还可以包含作为字符串返回的单个组,以及以前要求使用的组列表。

有效值

一个字符串。

dbms.security.oidc.<provider>.claims.username

表 251. dbms.security.oidc.<provider>.claims.username

描述

用作 Neo4j 中用户名的声明。这通常是 sub,但在某些情况下,使用 email 等其他内容可能更合适。

有效值

一个字符串。

默认值

sub

dbms.security.oidc.<provider>.client_id

表 252. dbms.security.oidc.<provider>.client_id

描述

客户端 ID。未使用。此值以前用于验证 id_token 中的 azp 声明,但根据 OIDC 规范的更新,此验证已被移除。

有效值

一个字符串。

dbms.security.oidc.<provider>.config

表 253. dbms.security.oidc.<provider>.config

描述

接受的值(所有可选)为

  • principal: JWT 声明中指定用户电子邮件地址,默认为 email。这是将在浏览器中显示的值。

  • code_challenge_method: 默认为 S256,目前只支持此方法。此设置仅适用于 pkce 认证流程

  • token_type_principal: 选项几乎总是 access_token(默认)或 id_token

  • token_type_authentication: 选项几乎总是 access_token(默认)或 id_token

  • implicit_flow_requires_nonce: true 或 false。默认为 false。

有效值

一个简单的键值映射模式 k1=v1;k2=v2。有效的键选项有:[implicit_flow_requires_nonce, token_type_authentication, token_type_principal, principal, code_challenge_method]

默认值

{}

dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled

表 254. dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled

描述

当设置为 true 时,它会记录 JWT 中的声明。这仅在安全日志级别设置为 DEBUG 时生效。

强烈建议在生产环境中将其设置为false,以防止记录敏感信息。另请注意,JWT 声明集的内容可能会随着时间而改变,因为它们完全取决于身份提供商。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.display_name

表 255. dbms.security.oidc.<provider>.display_name

描述

由发现端点向客户端(Bloom、浏览器等)提供的提供商面向用户的名称。

有效值

一个字符串。

dbms.security.oidc.<provider>.get_groups_from_user_info

表 256. dbms.security.oidc.<provider>.get_groups_from_user_info

描述

启用后,Neo4j 从提供商用户信息端点获取组。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.get_username_from_user_info

表 257. dbms.security.oidc.<provider>.get_username_from_user_info

描述

启用后,Neo4j 从提供商用户信息端点获取用户名。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.issuer

表 258. dbms.security.oidc.<provider>.issuer

描述

id 令牌中 iss 声明的预期值。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

一个字符串。

dbms.security.oidc.<provider>.jwks_uri

表 259. dbms.security.oidc.<provider>.jwks_uri

描述

身份提供商 JWK 公钥集的位置。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

URI

dbms.security.oidc.<provider>.params

表 260. dbms.security.oidc.<provider>.params

描述

映射是分号分隔的键值对列表。例如:k1=v1;k2=v2。用户应至少提供

  client_id: the SSO Idp client idenfifier.
  response_type: code if auth_flow is pkce or token for implicit auth_flow.
  scope: often containing a subset of 'email profile openid groups'.

例如:client_id=my-client-id;response_type=code;scope=openid profile email

有效值

一个简单的键值映射模式 k1=v1;k2=v2。必需的键选项有:[scope, client_id, response_type]

默认值

{}

dbms.security.oidc.<provider>.token_endpoint

表 261. dbms.security.oidc.<provider>.token_endpoint

描述

OIDC 令牌端点。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

URI

dbms.security.oidc.<provider>.token_params

表 262. dbms.security.oidc.<provider>.token_params

描述

令牌端点所需的额外可选查询参数。映射是分号分隔的键值对列表。例如:k1=v1;k2=v2。如果令牌端点需要 client_secret,则此参数应包含client_secret=super-secret

有效值

一个简单的键值映射模式 k1=v1;k2=v2

默认值

{}

dbms.security.oidc.<provider>.user_info_uri

表 263. dbms.security.oidc.<provider>.user_info_uri

描述

身份提供商用户信息 URI。

有效值

URI

dbms.security.oidc.<provider>.well_known_discovery_uri

表 264. dbms.security.oidc.<provider>.well_known_discovery_uri

描述

OpenID Connect 发现端点,用于获取身份提供商设置。如果未提供,则应存在issuerjwks_uriauth_endpoint。如果 auth_flow 是 pkce,则还应提供token_endpoint

有效值

URI

dbms.security.procedures.allowlist

表 265. dbms.security.procedures.allowlist

描述

要加载的过程列表(逗号分隔)。列表可以包含完全限定的过程名称和带通配符 * 的部分名称。默认值 (*) 会加载所有过程。如果未指定值,则不加载任何过程。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

*

dbms.security.procedures.unrestricted

表 266. dbms.security.procedures.unrestricted

描述

允许完全访问数据库的过程和用户定义函数列表(逗号分隔)。列表可以包含完全限定的过程名称和带通配符 * 的部分名称。请注意,这将使这些过程能够绕过安全机制。请谨慎使用。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

dbms.security.require_local_user

表 267. dbms.security.require_local_user

描述

这控制外部认证是否必须创建本地用户。如果设置为默认值(false),则无需创建用户即可通过外部认证提供商进行认证。如果设置为 true,则必须在外部用户成功认证之前创建代表该外部用户的用户。

有效值

一个布尔值。

默认值

false

dbms.security.tls_reload_enabled

表 268. dbms.security.tls_reload_enabled

描述

通过调用过程动态启用 TLS 配置和证书的重新加载。

有效值

一个布尔值。

默认值

false

dbms.netty.ssl.provider

表 269. dbms.netty.ssl.provider

描述

Netty SSL 提供商。

有效值

JDK、OPENSSL 或 OPENSSL_REFCNT 之一。

默认值

JDK

服务器目录设置

服务器目录设置可用于更改 Neo4j 文件的默认位置。有关更多信息,请参阅默认文件位置

server.directories.cluster_state

表 270. server.directories.cluster_state

描述

用于保存集群状态(包括 Raft 日志)的目录。

有效值

一个路径。如果为相对路径,则从 server.directories.data 解析。

默认值

cluster-state

server.directories.configuration

表 271. server.directories.configuration

描述

配置目录的根位置。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

conf

server.directories.data

表 272. server.directories.data

描述

数据目录的路径。您不得配置多个 Neo4j 安装使用相同的数据目录。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

data

server.directories.dumps.root

表 273. server.directories.dumps.root

描述

Neo4j 将存储在删除数据库时可选生成的数据库转储的根位置。

有效值

一个路径。如果为相对路径,则从 server.directories.data 解析。

默认值

dumps

server.directories.import

表 274. server.directories.import

描述

设置 Cypher LOAD CSV 子句所使用的文件 URL 的根目录。这应设置为相对于 Neo4j 安装路径的目录,将访问权限限制为仅该目录及其子目录中的文件。例如,值“import”将仅启用对“import”文件夹中文件的访问。移除此设置将禁用安全功能,允许导入本地系统中的所有文件。将其设置为空字段将允许访问 Neo4j 安装文件夹中的所有文件。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

server.directories.lib

表 275. server.directories.lib

描述

lib 目录的路径。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

lib

server.directories.licenses

表 276. server.directories.licenses

描述

许可证目录的路径。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

licenses

server.directories.logs

表 277. server.directories.logs

描述

日志目录的路径。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

logs

server.directories.metrics

表 278. server.directories.metrics

描述

CSV 文件的目标位置:一个目录的路径,其中将写入每个报告字段的 CSV 文件。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

metrics

server.directories.neo4j_home

表 279. server.directories.neo4j_home

描述

目录设置解析的根目录。在启动时由服务器计算和设置。默认为当前工作目录。

有效值

一个绝对路径。

默认值

server.directories.plugins

表 280. server.directories.plugins

描述

数据库插件目录的位置。如果将包含数据库过程的编译 Java JAR 文件放置在此目录中,它们将被加载。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

plugins

server.directories.run

表 281. server.directories.run

描述

运行目录的路径。此目录保存 Neo4j 的运行时状态,例如在后台运行时的一个 pid 文件。pid 文件在启动 neo4j 时创建,在停止时删除。它可能放置在 tmpfs 等内存文件系统上。

有效值

一个路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

run

server.directories.script.root

表 282. server.directories.script.root

描述

Neo4j 将存储配置数据库脚本的根位置。

有效值

一个路径。如果为相对路径,则从 server.directories.data 解析。

默认值

scripts

server.directories.transaction.logs.root

表 283. server.directories.transaction.logs.root

描述

Neo4j 将存储配置数据库事务日志的根位置。

有效值

一个路径。如果为相对路径,则从 server.directories.data 解析。

默认值

transactions

服务器设置

服务器设置仅适用于特定服务器,并且可以在集群/DBMS 的配置文件之间进行更改。

server.backup.enabled

表 284. server.backup.enabled

描述

启用对运行在线备份的支持。

有效值

一个布尔值。

默认值

true

server.backup.exec_connector.command

表 285. server.backup.exec_connector.command

描述

ExecDataConnector 列表要执行的命令

有效值

一个字符串。

默认值

server.backup.exec_connector.scheme

表 286. server.backup.exec_connector.scheme

描述

ExecDataConnector 将匹配的方案

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.backup.listen_address

表 287. server.backup.listen_address

描述

备份服务器要监听的网络接口和端口。

有效值

格式为 hostname:porthostname:port 的套接字地址。

默认值

127.0.0.1:6362

server.backup.advertised_address

表 288. server.backup.advertised_address

描述

备份服务器的公布地址。默认为默认公布地址与备份监听地址中定义的端口的组合。

有效值

一个套接字地址,格式为 hostname:porthostname:port,必须是可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:0

server.backup.store_copy_max_retry_time_per_request

表 289. server.backup.store_copy_max_retry_time_per_request

描述

存储复制期间每个请求的最大重试时间。在存储复制期间,常规存储文件和索引在单独的请求中下载。此配置设置了允许失败请求重发的最长时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

20m

server.config.strict_validation.enabled

表 290. server.config.strict_validation.enabled

描述

严格配置验证将阻止数据库启动,如果 neo4j 设置命名空间(例如 dbms.、cypher. 等)中指定了未知配置选项,或者设置被多次声明。

有效值

一个布尔值。

默认值

true

server.databases.default_to_read_only

表 291. server.databases.default_to_read_only

描述

此实例上的任何数据库是否默认为只读。如果为 false,则可以使用 server.database.read_only 将单个数据库标记为只读。如果为 true,则可以使用server.databases.writable将单个数据库标记为可写。

有效值

一个布尔值。

默认值

false

server.databases.read_only

表 292. server.databases.read_only

描述

要阻止写入查询的数据库列表。此列表中未包含的数据库也可能仍然是只读的,具体取决于server.databases.default_to_read_only的值。

有效值

逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母字符、数字、点和破折号,长度在 3 到 63 个字符之间,以字母字符或数字开头,但不能以名称 system 开头。

默认值

server.databases.writable

表 293. server.databases.writable

描述

允许写入查询的数据库列表。此列表中未包含的数据库仍将允许写入查询,除非server.databases.default_to_read_only设置为 true。

有效值

逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母字符、数字、点和破折号,长度在 3 到 63 个字符之间,以字母字符或数字开头,但不能以名称 system 开头。

默认值

server.dynamic.setting.allowlist

表 294. server.dynamic.setting.allowlist

描述

允许动态更改的设置名称模式列表(逗号分隔)。列表可以包含完整的设置名称和带通配符 * 的部分名称。如果此设置留空,则所有动态设置更新都将被阻止。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串。

默认值

*

server.jvm.additional

表 295. server.jvm.additional

描述

额外的 JVM 参数。参数顺序可能很重要。要使用 Java 商业功能,解锁商业功能的参数必须在配置值字符串中启用特定功能的参数之前。

有效值

一个或多个 JVM 参数。

默认值

server.panic.shutdown_on_panic

表 296. server.panic.shutdown_on_panic

描述

控制在发生服务器崩溃(不可恢复的错误)时,Neo4j 进程是关闭还是继续运行。服务器崩溃后,很可能会丢失大量功能。恢复完整功能将需要重新启动 Neo4j 进程。

有效值

一个布尔值。

默认值

true 2025.01 中更改

server.threads.worker_count

表 297. server.threads.worker_count

描述

Neo4j 工作线程数。此设置仅对 REST 有效,不影响 bolt-server。它设置了 neo4j-server 使用的 Jetty 服务器的工作线程数。当您计划执行多个并发 REST 请求时,可以调整此选项,以从数据库获得更高的吞吐量。您的操作系统可能会强制执行低于此处指定最大值的限制。可用处理器数量,如果机器有超过 500 个处理器,则为 500。

有效值

一个整数,范围在 144738 之间。

默认值

server.unmanaged_extension_classes

表 298. server.unmanaged_extension_classes

描述

非托管扩展的 <classname>=<mount point> 逗号分隔列表。

有效值

一个逗号分隔的列表,其中每个元素都是 <classname>=<mount point> 字符串。

默认值

server.windows_service_name

表 299. server.windows_service_name

描述

使用 neo4j install-service 安装时管理 Neo4j 的 Windows 服务的名称。仅适用于 Windows 操作系统。
注意:每个安装此项必须是唯一的。

有效值

一个字符串。

默认值

neo4j

事务设置

事务设置可帮助您管理数据库中的事务,例如事务超时、锁获取超时、并发运行事务的最大数量等。有关更多信息,请参阅管理事务并发数据访问

db.lock.acquisition.timeout

表 300. db.lock.acquisition.timeout

描述

获取锁的最大时间间隔。零(默认)表示超时被禁用。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

0s

db.shutdown_transaction_end_timeout

表 301. db.shutdown_transaction_end_timeout

描述

在允许启动的数据库关闭继续之前,等待正在运行的事务完成的最长时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

10s

db.transaction.bookmark_ready_timeout

表 302. db.transaction.bookmark_ready_timeout

描述

等待书签所表示的数据库状态的最大时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1s

默认值

30s

db.transaction.concurrent.maximum

表 303. db.transaction.concurrent.maximum

描述

并发运行事务的最大数量。如果设置为 0,则禁用限制。

有效值

一个整数。

默认值

1000

db.transaction.monitor.check.interval

表 304. db.transaction.monitor.check.interval

描述

配置事务监视器检查之间的时间间隔。确定监视器线程检查事务超时时间表的频率。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

2s

db.transaction.sampling.percentage

表 305. db.transaction.sampling.percentage

描述

事务采样百分比。

有效值

一个整数,范围在 1100 之间。

默认值

5

db.transaction.timeout

表 306. db.transaction.timeout

描述

事务必须在此时间间隔内完成的最大时间。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

0s

db.transaction.tracing.level

表 307. db.transaction.tracing.level

描述

事务创建跟踪级别。

有效值

DISABLED、SAMPLE 或 ALL 之一。

默认值

DISABLED

server.http.transaction_idle_timeout

表 308. server.http.transaction_idle_timeout

描述

HTTP 服务器中空闲事务的超时时间。
注意:这与将使底层事务超时的“db.transaction.timeout”不同。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

30s

server.queryapi.transaction_idle_timeout

表 309. server.queryapi.transaction_idle_timeout

描述

查询 API 中空闲事务的超时时间。
注意:这与将使底层事务超时的“db.transaction.timeout”不同。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

1m

事务日志设置

事务日志保留了尚未应用于存储文件的事务列表。这对于恢复是必要的。以下设置配置了修剪操作后剩余的事务日志数量以及事务日志文件的大小。

另请参阅检查点设置

db.recovery.fail_on_missing_files

表 310. db.recovery.fail_on_missing_files

描述

如果为 true,则在事务日志文件丢失时,Neo4j 将中止恢复。将其设置为 false 将允许 Neo4j 为现有数据库创建新的空丢失文件,但数据库的完整性可能会受到损害。

有效值

一个布尔值。

默认值

true

db.tx_log.buffer.size

表 311. db.tx_log.buffer.size

描述

在事务日志序列化时,它们将临时存储在字节缓冲区中,该缓冲区将在事务结束时或在缓冲区满的任何时刻刷新。默认情况下,字节缓冲区的大小基于可用 CPU 数量,最小缓冲区大小为 512KB。每增加 4 个 CPU 将向缓冲区大小增加 512KB。在这种默认方案中,最大缓冲区大小为 4MB,考虑到多数据库环境中每个数据库可以有一个事务日志写入器。例如,4 个 CPU 的运行时将具有 1MB 的缓冲区大小;8 个 CPU 的运行时将具有 1MB 512KB 的缓冲区大小;12 个 CPU 的运行时将具有 2MB 的缓冲区大小。

有效值

最小为 131072 的长整型。

默认值

db.tx_log.preallocate

表 312. db.tx_log.preallocate

描述

指定 Neo4j 是否应尝试预先分配逻辑日志文件。它通过确保有足够的空间容纳新生成的文件并避免文件级碎片来优化文件系统。

有效值

一个布尔值。

默认值

true

db.tx_log.rotation.retention_policy

表 313. db.tx_log.rotation.retention_policy

描述

指定 Neo4j 应保留逻辑事务日志以备份数据库多长时间。例如,10 days 会修剪仅包含早于 10 天的事务的逻辑日志。或者,100k txs 会保留每个数据库的最新 10 万个事务,并修剪任何更早的事务。您可以选择添加基于周期的日志大小限制。例如,2 days 1G 会修剪仅包含早于 2 天的事务或大于 1G 的逻辑日志。

有效值

一个字符串,与模式 ^(true|keep_all|false|keep_none|(\d+[KkMmGg]?( (files|size|txs|entries|hours( \d+[KkMmGg]?)?|days( \d+[KkMmGg]?)?))))$ 匹配(必须是 truekeep_allfalsekeep_none,或者格式为 <number><optional unit> <type> <optional space restriction>。有效单位为 KMG。有效类型为 filessizetxsentrieshoursdays。可选的空间限制是逻辑日志空间限制,例如 100M。例如,100M size 将限制每个数据库的逻辑日志磁盘空间为 100MiB,200K txs 将限制每个数据库保留的事务数量为 20 万。)。

默认值

2 days 2G

db.tx_log.rotation.size

表 314. db.tx_log.rotation.size

描述

指定逻辑日志自动轮换的文件大小。最小可接受值为 128 KiB。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小为 128.00KiB

默认值

256.00MiB

© . All rights reserved.