1.环境准备
安装jdk11
2.安装neo4j
tar -zxvf neo4j-community-4.1.1-unix.tar.gz -C /usr/local/
修改环境变量
NEO4J_HOME=/usr/local/neo4j-community-4.1.1
PATH=$PATH:$NEO4J_HOME/bin
source /etc/profile
修改limits.conf文件
vim /etc/security/limits.conf
neo4j soft nofile 40000
neo4j hard nofile 40000
修改配置文件neo4j.conf
cd /usr/local/neo4j-community-4.1.1/conf
只修改修改2个参数即可
vim neo4j.conf
dbms.default_listen_address=0.0.0.0 #数据库所在机器的ip
dbms.default_advertised_address=0.0.0.0 #数据库所在机器的ip
启动Neo4j
neo4j start
默认用户名:neo4j 密码:neo4j
第一次登陆后需要重新设置密码
3.Neo4的neo4j.conf文件配置详情
#*****************************************************************
# Neo4j configuration
#
# For more details and a complete list of settings, please see
# https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/
#*****************************************************************
# The name of the default database
#默认数据库的名称是neo4j(有效的数据库名称。 仅包含字母字符,数字,点和破折号,长度在3到63个字符之间。 它应该以字母字符开头,但不能以“ system”名称开头。)
#dbms.default_database=neo4j
# Paths of directories in the installation.
#安装中目录的路径,默认使用当前安装Neo4j的目录
#dbms.directories.data=data #数据目录的路径。您不能将多个Neo4j安装配置为使用同一数据目录。
#dbms.directories.plugins=plugins #数据库插件目录的位置。如果将包含数据库过程的已编译Java JAR文件放置在此目录中,则将加载它们。
#dbms.directories.logs=logs #日志目录的路径
#dbms.directories.lib=lib #lib目录的路径。
#dbms.directories.run=run #运行目录的路径。 该目录保存Neo4j的运行时状态,例如在后台运行时的pidfile。 pidfile是在启动neo4j时创建的,并在停止它时被删除。 可以将其放置在内存文件系统(例如tmpfs)上。
#dbms.directories.transaction.logs.root=data/transactions #存储事物日志的位置
# This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or comment it out to
# allow files to be loaded from anywhere in the filesystem; this introduces possible security problems. See the
# `LOAD CSV` section of the manual for details.
#此设置将所有“ LOAD CSV”导入文件限制在“ import”目录下。 删除或注释 则允许从文件系统中的任何位置加载文件; 这引入了可能的安全问题
dbms.directories.import=import
# Whether requests to Neo4j are authenticated.
# To disable authentication, uncomment this line
#是否验证对Neo4j的请求。要禁用身份验证,请取消注释此行
#dbms.security.auth_enabled=false
# Enable this to be able to upgrade a store from an older version.
#是否开启自动升级(默认关闭)
#dbms.allow_upgrade=true
#********************************************************************
# Memory Settings
#********************************************************************
#
# Memory settings are specified kilobytes with the 'k' suffix, megabytes with
# 'm' and gigabytes with 'g'.
# If Neo4j is running on a dedicated server, then it is generally recommended
# to leave about 2-4 gigabytes for the operating system, give the JVM enough
# heap to hold all your transaction state and query context, and then leave the
# rest for the page cache.
# Java Heap Size: by default the Java heap size is dynamically calculated based
# on available system resources. Uncomment these lines to set specific initial
# and maximum heap size.
#Java堆大小:默认情况下,Java堆大小是基于可用系统资源动态计算的,可自己设置初始堆大小和最大堆大小值,具体值需要根据自己系统及数据量大小而定
#dbms.memory.heap.initial_size=512m #初始堆大小。 默认情况下,它是根据可用的系统资源来计算的。 (有效单位为k,K,m,M,g,G)。
#dbms.memory.heap.max_size=512m #最大堆大小。 默认情况下,它是根据可用的系统资源来计算的。 (有效单位为k,K,m,M,g,G)
# The amount of memory to use for mapping the store files.
# The default page cache memory assumes the machine is dedicated to running
# Neo4j, and is heuristically set to 50% of RAM minus the Java heap size.
#设置缓存,单位可以是k/m/g,建议设置为RAM的50%减去最大Java堆大小(此参数很重要),如果未做设置则具体值需要根据自己系统及数据量大小而定
#dbms.memory.pagecache.size=10g
# Limit the amount of memory that all of the running transaction can consume.
# By default there is no limit.
#限制所有正在运行的事务可以消耗的内存量。默认情况下没有限制
#dbms.memory.transaction.global_max_size=256m
# Limit the amount of memory that a single transaction can consume.
# By default there is no limit.
#限制单个事务可以消耗的内存量。默认情况下没有限制
#dbms.memory.transaction.max_size=16m
# Transaction state location. It is recommended to use ON_HEAP.
#事务状态位置。建议使用ON-HEAP
dbms.tx_state.memory_allocation=ON_HEAP
#*****************************************************************
# Network connector configuration
#*****************************************************************
# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
#使用默认配置Neo4j仅接受本地连接。要接受非本地连接,请取消注释此行
#dbms.default_listen_address=0.0.0.0
# You can also choose a specific network interface, and configure a non-default
# port for each connector, by setting their individual listen_address.
# The address at which this server can be reached by its clients. This may be the server's IP address or DNS name, or
# it may be the address of a reverse proxy which sits in front of the server. This setting may be overridden for
# individual connectors below.
#dbms.default_advertised_address=localhost
# You can also choose a specific advertised hostname or IP address, and
# configure an advertised port for each connector, by setting their
# individual advertised_address.
# By default, encryption is turned off.
# To turn on encryption, an ssl policy for the connector needs to be configured
# Read more in SSL policy section in this file for how to define a SSL policy.
# Bolt connector
dbms.connector.bolt.enabled=true #Bolt 连接开启
#dbms.connector.bolt.tls_level=DISABLED #要求使用此连接器的加密级别,默认是禁用(REQUIRED, OPTIONAL, DISABLED)
#dbms.connector.bolt.listen_address=:7687 #连接器应绑定的地址,套接字地址。 如果缺少端口或主机名,则从dbms.default_listen_address获取它
# HTTP Connector. There can be zero or one HTTP connectors.
dbms.connector.http.enabled=true #启用http连接器。
#dbms.connector.http.listen_address=:7474 #连接器应绑定的地址。
# HTTPS Connector. There can be zero or one HTTPS connectors.
dbms.connector.https.enabled=false #启用https连接器。(默认关闭)
#dbms.connector.https.listen_address=:7473 #连接器应绑定的地址。
# Number of Neo4j worker threads.
#运行线程数,取值范围是1〜44738
#dbms.threads.worker_count=
#*****************************************************************
# SSL policy configuration #SSL策略配置
#*****************************************************************
# Each policy is configured under a separate namespace, e.g.
# dbms.ssl.policy.<scope>.*
# <scope> can be any of 'bolt', 'https', 'cluster' or 'backup'
#
# The scope is the name of the component where the policy will be used
# Each component where the use of an ssl policy is desired needs to declare at least one setting of the policy.
# Allowable values are 'bolt', 'https', 'cluster' or 'backup'.
# E.g if bolt and https connectors should use the same policy, the following could be declared
# dbms.ssl.policy.bolt.base_directory=certificates/default
# dbms.ssl.policy.https.base_directory=certificates/default
# However, it's strongly encouraged to not use the same key pair for multiple scopes.
#
# N.B: Note that a connector must be configured to support/require
# SSL/TLS for the policy to actually be utilized.
#
# see: dbms.connector.*.tls_level
# SSL settings (dbms.ssl.policy.<scope>.*)
# .base_directory Base directory for SSL policies paths. All relative paths within the
# SSL configuration will be resolved from the base dir.
#
# .private_key A path to the key file relative to the '.base_directory'.
#
# .private_key_password The password for the private key.
#
# .public_certificate A path to the public certificate file relative to the '.base_directory'.
#
# .trusted_dir A path to a directory containing trusted certificates.
#
# .revoked_dir Path to the directory with Certificate Revocation Lists (CRLs).
#
# .verify_hostname If true, the server will verify the hostname that the client uses to connect with. In order
# for this to work, the server public certificate must have a valid CN and/or matching
# Subject Alternative Names.
#
# .client_auth How the client should be authorized. Possible values are: 'none', 'optional', 'require'.
#
# .tls_versions A comma-separated list of allowed TLS versions. By default only TLSv1.2 is allowed.
#
# .trust_all Setting this to 'true' will ignore the trust truststore, trusting all clients and servers.
# Use of this mode is discouraged. It would offer encryption but no security.
#
# .ciphers A comma-separated list of allowed ciphers. The default ciphers are the defaults of
# the JVM platform.
# Bolt SSL configuration
#dbms.ssl.policy.bolt.enabled=true
#dbms.ssl.policy.bolt.base_directory=certificates/bolt
#dbms.ssl.policy.bolt.private_key=private.key
#dbms.ssl.policy.bolt.public_certificate=public.crt
#dbms.ssl.policy.bolt.client_auth=NONE
# Https SSL configuration
#dbms.ssl.policy.https.enabled=true
#dbms.ssl.policy.https.base_directory=certificates/https
#dbms.ssl.policy.https.private_key=private.key
#dbms.ssl.policy.https.public_certificate=public.crt
#dbms.ssl.policy.https.client_auth=NONE
# Cluster SSL configuration
#dbms.ssl.policy.cluster.enabled=true
#dbms.ssl.policy.cluster.base_directory=certificates/cluster
#dbms.ssl.policy.cluster.private_key=private.key
#dbms.ssl.policy.cluster.public_certificate=public.crt
# Backup SSL configuration
#dbms.ssl.policy.backup.enabled=true
#dbms.ssl.policy.backup.base_directory=certificates/backup
#dbms.ssl.policy.backup.private_key=private.key
#dbms.ssl.policy.backup.public_certificate=public.crt
#*****************************************************************
# Logging configuration #日志配置
#*****************************************************************
# To enable HTTP logging, uncomment this line
#是否启用HTTP日志记录(要启用HTTP日志记录,请取消注释此行)
#dbms.logs.http.enabled=true
# Number of HTTP logs to keep.
#要保留的HTTP日志数。
#dbms.logs.http.rotation.keep_number=5
# Size of each HTTP log that is kept.
#保存的每个HTTP日志的大小。
#dbms.logs.http.rotation.size=20m
# To enable GC Logging, uncomment this line
#要启用GC日志记录,请取消注释此行
#dbms.logs.gc.enabled=true
# GC Logging Options
#GC记录选项
# see https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-BE93ABDC-999C-4CB5-A88B-1994AAAC74D5
#dbms.logs.gc.options=-Xlog:gc*,safepoint,age*=trace
# Number of GC logs to keep.
#GC日志保留数
#dbms.logs.gc.rotation.keep_number=5
# Size of each GC log that is kept.
#GC日志文件大小
#dbms.logs.gc.rotation.size=20m
# Log level for the debug log. One of DEBUG, INFO, WARN and ERROR. Be aware that logging at DEBUG level can be very verbose.
#调试日志的日志级别。 调试,信息,警告和错误之一。 请注意,在DEBUG级别记录日志可能非常冗长
#dbms.logs.debug.level=INFO
# Size threshold for rotation of the debug log. If set to zero then no rotation will occur. Accepts a binary suffix "k",
# "m" or "g".
#调试日志阈值大小
#dbms.logs.debug.rotation.size=20m
# Maximum number of history files for the internal log.
#最多保留日志文件数
#dbms.logs.debug.rotation.keep_number=7
#*****************************************************************
# Miscellaneous configuration #其他配置
#*****************************************************************
# Enable this to specify a parser other than the default one.
#启用此选项可指定默认解析器以外的解析器。
#cypher.default_language_version=3.5 #设置此项以指定默认解析器(语言版本) [default, 3.5, 4.0, 4.1]
# Determines if Cypher will allow using file URLs when loading data using
# `LOAD CSV`. Setting this value to `false` will cause Neo4j to fail `LOAD CSV`
# clauses that load data from the file system.
#是否允许Cypher在Load CSV时引用互联网上的地址
#dbms.security.allow_csv_import_from_file_urls=true
# Value of the Access-Control-Allow-Origin header sent over any HTTP or HTTPS
# connector. This defaults to '*', which allows broadest compatibility. Note
# that any URI provided here limits HTTP/HTTPS access to that URI only.
#dbms.security.http_access_control_allow_origin=*
# Value of the HTTP Strict-Transport-Security (HSTS) response header. This header
# tells browsers that a webpage should only be accessed using HTTPS instead of HTTP.
# It is attached to every HTTPS response. Setting is not set by default so
# 'Strict-Transport-Security' header is not sent. Value is expected to contain
# directives like 'max-age', 'includeSubDomains' and 'preload'.
#dbms.security.http_strict_transport_security=
# Retention policy for transaction logs needed to perform recovery and backups.
#执行恢复和备份所需的事务日志的保留策略。
#使Neo4j保留逻辑事务日志,以便能够备份数据库。 可用于指定阈值,以在此之后修剪逻辑日志。 例如,“ 10天”将删除仅包含比当前时间早10天的事务的逻辑日志,或者“ 100k txs”将保留100k个最新事务并修剪任何较早的事务。
dbms.tx_log.rotation.retention_policy=1 days #使Neo4j保留逻辑事务日志,以便能够备份数据库。
# Only allow read operations from this Neo4j instance. This mode still requires
# write access to the directory for lock purposes.
#dbms.read_only=false #仅允许从此Neo4j实例进行读取操作。
# Comma separated list of JAX-RS packages containing JAX-RS resources, one
# package name for each mountpoint. The listed package names will be loaded
# under the mountpoints specified. Uncomment this line to mount the
# org.neo4j.examples.server.unmanaged.HelloWorldResource.java from
# neo4j-server-examples under /examples/unmanaged, resulting in a final URL of
# http://localhost:7474/examples/unmanaged/helloworld/{nodeId}
#dbms.unmanaged_extension_classes=org.neo4j.examples.server.unmanaged=/examples/unmanaged
# A comma separated list of procedures and user defined functions that are allowed
# full access to the database through unsupported/insecure internal APIs.
#dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*
# A comma separated list of procedures to be loaded by default.
# Leaving this unconfigured will load all procedures found.
#dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*
#********************************************************************
# JVM Parameters #JVM参数
#********************************************************************
# G1GC generally strikes a good balance between throughput and tail
# latency, without too much tuning.
#G1GC通常在吞吐量和拖尾之间达到良好的平衡
dbms.jvm.additional=-XX:+UseG1GC
# Have common exceptions keep producing stack traces, so they can be
# debugged regardless of how often logs are rotated.
dbms.jvm.additional=-XX:-OmitStackTraceInFastThrow
# Make sure that `initmemory` is not only allocated, but committed to
# the process, before starting the database. This reduces memory
# fragmentation, increasing the effectiveness of transparent huge
# pages. It also reduces the possibility of seeing performance drop
# due to heap-growing GC events, where a decrease in available page
# cache leads to an increase in mean IO response time.
# Try reducing the heap memory, if this flag degrades performance.
dbms.jvm.additional=-XX:+AlwaysPreTouch
# Trust that non-static final fields are really final.
# This allows more optimizations and improves overall performance.
# NOTE: Disable this if you use embedded mode, or have extensions or dependencies that may use reflection or
# serialization to change the value of final fields!
dbms.jvm.additional=-XX:+UnlockExperimentalVMOptions
dbms.jvm.additional=-XX:+TrustFinalNonStaticFields
# Disable explicit garbage collection, which is occasionally invoked by the JDK itself.
dbms.jvm.additional=-XX:+DisableExplicitGC
#Increase maximum number of nested calls that are can be inlined from 9 (default) to 15
dbms.jvm.additional=-XX:MaxInlineLevel=15
# Restrict size of cached JDK buffers to 256 KB
dbms.jvm.additional=-Djdk.nio.maxCachedBufferSize=262144
# More efficient buffer allocation in Netty by allowing direct no cleaner buffers.
dbms.jvm.additional=-Dio.netty.tryReflectionSetAccessible=true
# Exits JVM on the first occurrence of an out-of-memory error. Its preferable to restart VM in case of out of memory errors.
#在第一次出现内存不足错误时退出JVM。 如果出现内存不足错误,最好重启VM。
# dbms.jvm.additional=-XX:+ExitOnOutOfMemoryError
# Remote JMX monitoring, uncomment and adjust the following lines as needed. Absolute paths to jmx.access and
# jmx.password files are required.
# Also make sure to update the jmx.access and jmx.password files with appropriate permission roles and passwords,
# the shipped configuration contains only a read only role called 'monitor' with password 'Neo4j'.
# For more details, see: http://download.oracle.com/javase/8/docs/technotes/guides/management/agent.html
# On Unix based systems the jmx.password file needs to be owned by the user that will run the server,
# and have permissions set to 0600.
# For details on setting these file permissions on Windows see:
# http://docs.oracle.com/javase/8/docs/technotes/guides/management/security-windows.html
#dbms.jvm.additional=-Dcom.sun.management.jmxremote.port=3637
#dbms.jvm.additional=-Dcom.sun.management.jmxremote.authenticate=true
#dbms.jvm.additional=-Dcom.sun.management.jmxremote.ssl=false
#dbms.jvm.additional=-Dcom.sun.management.jmxremote.password.file=/absolute/path/to/conf/jmx.password
#dbms.jvm.additional=-Dcom.sun.management.jmxremote.access.file=/absolute/path/to/conf/jmx.access
# Some systems cannot discover host name automatically, and need this line configured:
#dbms.jvm.additional=-Djava.rmi.server.hostname=$THE_NEO4J_SERVER_HOSTNAME
# Expand Diffie Hellman (DH) key size from default 1024 to 2048 for DH-RSA cipher suites used in server TLS handshakes.
# This is to protect the server from any potential passive eavesdropping.
dbms.jvm.additional=-Djdk.tls.ephemeralDHKeySize=2048
# This mitigates a DDoS vector.
dbms.jvm.additional=-Djdk.tls.rejectClientInitiatedRenegotiation=true
# Enable remote debugging
#dbms.jvm.additional=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
# This filter prevents deserialization of arbitrary objects via java object serialization, addressing potential vulnerabilities.
# By default this filter whitelists all neo4j classes, as well as classes from the hazelcast library and the java standard library.
# These defaults should only be modified by expert users!
# For more details (including filter syntax) see: https://openjdk.java.net/jeps/290
#dbms.jvm.additional=-Djdk.serialFilter=java.**;org.neo4j.**;com.neo4j.**;com.hazelcast.**;net.sf.ehcache.Element;com.sun.proxy.*;org.openjdk.jmh.**;!*
# Increase the default flight recorder stack sampling depth from 64 to 256, to avoid truncating frames when profiling.
dbms.jvm.additional=-XX:FlightRecorderOptions=stackdepth=256
# Allow profilers to sample between safepoints. Without this, sampling profilers may produce less accurate results.
dbms.jvm.additional=-XX:+UnlockDiagnosticVMOptions
dbms.jvm.additional=-XX:+DebugNonSafepoints
#********************************************************************
# Wrapper Windows NT/2000/XP Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
# using this configuration file has been installed as a service.
# Please uninstall the service before modifying this section. The
# service can then be reinstalled.
# Name of the service
dbms.windows_service_name=neo4j
#********************************************************************
# Other Neo4j system properties
#********************************************************************
官方地址:https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/