neo4j.conf
文件是Neo4j
中配置设置的主要来源,包含配置设置键到值的映射。neo4j.conf
文件中的大多数配置设置直接应用于Neo4j
本身,但也有与Neo4j运行的Java运行时(JVM)相关的其他设置。
等号(=)将配置设置KV配置。
以数字符号(#)开头的行作为注释处理。
不支持尾随注释。
空行将被忽略。
配置neo4j.conf
中的设置将覆盖所有默认值。如果要用自定义值修改默认值,则必须显式列出默认值和新值。
配置设置是无序。
默认情况下,配置设置启用了严格的验证。如果Neo4j.conf
文件包含错字、错误信息或重复(server.jvm.additional
除外),它会阻止Neo4j
启动。如果为server.jvm.additional
设置了多个值。每个设置值向java
启动程序添加一个自定义JVM
参数。
要禁用严格验证,请设置server.config.strict_validate.enabled=false
。
默认情况下,字符编码为ISO 8859-1
。可以通过将环境变量NEO4J_CONFIG_FILE_CHARSET
设置为utf8
来覆盖。
Neo4j
配置设置有以下通用格式:
<prefix>.<scope>.<component>...<component>.<name>
scope一般有:
db
dbms
server
browser
client
Setting | Description |
---|---|
server.memory.heap.initial_size | 初始化堆大小,默认情况下根据系统资源计算。 |
server.memory.heap.max_size | 堆最大值,默认情况下根据系统资源计算。 |
server.jvm.additional | 附加参数 |
如果希望很好地控制系统行为,建议将堆大小参数设置为相同的值,以避免不必要的完全垃圾收集暂停。
SHOW SETTINGS
YIELD name, value
WHERE name STARTS WITH 'server.default'
RETURN name, value
ORDER BY name
LIMIT 3;
命令展开提供了一个额外的功能来配置Neo4j
,它允许您指定设置来自外部文件的值的脚本。这对以下情况特别有用:
避免以明文形式在neo4j.conf
文件中设置敏感信息,如用户名、密码、密钥等。
处理在文件系统不可访问的环境中运行的实例的配置设置。
在neo4j.conf
文件中通过$()
把脚本的值作为参数。例如:dbms.setting=$(script_to_execute)
该配置接受可以由拥有并执行Neo4j
服务器的用户在子进程中执行的任何命令。这也意味着,在将Neo4j
设置为服务的情况下,命令在服务中执行。
可以使用curl 命令为配置设置获取令牌或值。例如,可以通过将
neo4j.conf
文件中的任何敏感信息替换为对某种提供者的安全引用来应用额外的安全级别。
加 --expand-commands
参数
bin/neo4j start --expand-commands
File type | Description | Linux / macOS / Docker |
---|---|---|
Bin | 运行文件位置 | <neo4j-home>/bin |
Certificates | TLS证书 | <neo4j-home>/certificates |
Configuration | The Neo4j configuration settings, Log4j configuration settings, and the JMX access credentials. | <neo4j-home>/conf/neo4j.conf <neo4j-home>/conf/server-logs.xml <neo4j-home>/conf/user-log.xml |
Data [3] | 数据文件 | <neo4j-home>/data |
Import | LOAD CSV 文件 | /import |
Labs [4] | APOC Core | <neo4j-home>/labs |
Lib | <neo4j-home>/lib | |
Licenses | <neo4j-home>/licenses | |
Logs | <neo4j-home>/logs | |
Metrics | 度量 | <neo4j-home>/metrics |
Plugins | 插件 | <neo4j-home>/plugins |
Products | <neo4j-home>/products | |
Run | 进程id | <neo4j-home>/run |
环境变量设置:
Location | Default | Environment variable |
---|---|---|
<neo4j-home> | bin 目录的父目录 | NEO4J_HOME |
conf | <neo4j-home>/conf | NEO4J_CONF |
其他设置:
#server.directories.data=data
#server.directories.plugins=plugins
#server.directories.logs=logs
#server.directories.lib=lib
#server.directories.run=run
#server.directories.licenses=licenses
#server.directories.metrics=metrics
#server.directories.transaction.logs.root=data/transactions
#server.directories.dumps.root=data/dumps
#server.directories.import=import
侦听地址配置设置将设置要侦听的网络接口和端口。例如,ip
地址为127.0.0.1
,端口为7687
,可设置为127.0.0.1:7687
。下表显示了可用的neo4j
特定端口和相关配置设置的概述:
Name | Default port | Related configuration setting |
---|---|---|
backup | 6362 | server.backup.listen_address |
HTTP | 7474 | server.http.listen_address |
HTTPS | 7473 | server.https.listen_address |
Bolt | 7687 | server.bolt.listen_address |
Cluster discovery management | 5000 | server.discovery.listen_address |
Cluster transaction | 6000 | server.cluster.listen_address |
Cluster RAFT | 7000 | server.cluster.raft.listen_address |
Cluster routing connector | 7688 | server.routing.listen_address |
Graphite monitoring | 2003 | server.metrics.graphite.server |
Prometheus monitoring | 2004 | server.metrics.prometheus.endpoint |
JMX monitoring | 3637 | server.jvm.additional=-Dcom.sun.management.jmxremote.port=3637 |
Remote debugging | 5005 | server.jvm.additional=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 |
配置设置server.default_listen_address
将默认网络接口配置为侦听传入的连接。
略
Connector name | Protocol | Default port number |
---|---|---|
server.bolt | Bolt | 7687 |
server.http | HTTP | 7474 |
server.https | HTTPS | 7473 |
见:https://neo4j.com/docs/operations-manual/5/configuration/set-initial-password/
见:https://neo4j.com/docs/operations-manual/5/configuration/password-and-user-recovery/
//显示配置
SHOW SETTINGS
YIELD name, isDynamic
WHERE isDynamic
RETURN name
//修改配置
CALL dbms.setConfigValue(setting, value)
见:https://neo4j.com/docs/operations-manual/5/configuration/configuration-settings/