系统需求
版本 | JDK | CPU | 内存 | 硬盘 |
Neo4j 5.x | 17 | Intel x86-x64 Core i3 minimum,Core i7 recommended. AMD x86-x64, Mac ARM. | 最低 2GB,推荐 16GB + | 10G + |
Neo4j 5.x | 11 | |||
Neo4j 5.x | 8 |
JDK 17 下载:https://www.oracle.com/java/technologies/downloads/#java17
基于 jar 的安装
下载:https://neo4j.com/download-center/
#load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import
#设置JVM初始堆内存和JVM最大堆内存
dbms.memory.heap.initial_size=2g
dbms.memory.heap.max_size=5g
#可以认为这个是缓存,如果机器配置高,这个越大越好
dbms.memory.pagecache.size=2g
#去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0
#去掉#,设置http端口为7687,端口可以自定义,只要不和其他端口冲突就行
server.bolt.listen_address=:7687
#去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
server.http.listen_address=:7474
#去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true
#设置neo4j可读可写
dbms.databases.default_to_read_only=false
[root@localhost src]# wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
--2023-02-26 22:09:59-- https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
Resolving download.oracle.com (download.oracle.com)... 23.192.208.88
Connecting to download.oracle.com (download.oracle.com)|23.192.208.88|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 181577323 (173M) [application/x-gzip]
Saving to: ‘jdk-17_linux-x64_bin.tar.gz.1’
100%[========================================================================>] 181,577,323 1.00MB/s in 7m 43s
2023-02-26 22:17:48 (383 KB/s) - ‘jdk-17_linux-x64_bin.tar.gz’ saved [181577323/181577323]
[root@localhost src]# tar -zxvf jdk-17_linux-x64_bin.tar.gz
jdk-17.0.6/LICENSE
jdk-17.0.6/README
jdk-17.0.6/bin/jar
...
jdk-17.0.6/man/man1/rmiregistry.1
jdk-17.0.6/man/man1/serialver.1
jdk-17.0.6/release
[root@localhost /]# vim /etc/profile
...
# jdk环境变量
export JAVA_HOME=/usr/local/src/jdk-17.0.6
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# jdk环境变量
#编辑后退出
[root@localhost /]# source /etc/profile
[root@localhost /]# java -version
java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)
[root@localhost src]# ls
ifreedo_server ifreedo_server.tar neo4j-community-5.10.0-unix.tar.gz
[root@localhost src]# tar -axvf neo4j-community-5.10.0-unix.tar.gz
neo4j-community-5.10.0/
neo4j-community-5.10.0/run/
neo4j-community-5.10.0/conf/
...
neo4j-community-5.10.0/data/databases/
neo4j-community-5.10.0/data/transactions/
neo4j-community-5.10.0/LICENSE.txt
[root@localhost src]# ls
ifreedo_server ifreedo_server.tar neo4j-community-5.10.0 neo4j-community-5.10.0-unix.tar.gz
[root@localhost src]# cd neo4j-community-5.10.0
[root@localhost neo4j-community-5.10.0]# ls
bin conf import lib LICENSES.txt logs packaging_info README.txt UPGRADE.txt
certificates data labs licenses LICENSE.txt NOTICE.txt plugins run
[root@localhost neo4j-community-5.10.0]# cd conf/
[root@localhost conf]# ls
neo4j-admin.conf neo4j.conf server-logs.xml user-logs.xml
[root@localhost conf]# vim neo4j.conf
#编辑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
#initial.dbms.default_database=neo4j
# Paths of directories in the installation.
#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.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.
server.directories.import=import
# Whether requests to Neo4j are authenticated.
# To disable authentication, uncomment this line
#dbms.security.auth_enabled=false
#********************************************************************
# 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.
#server.memory.heap.initial_size=512m
#server.memory.heap.max_size=512m
# 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.
#server.memory.pagecache.size=10g
# Limit the amount of memory that all of the running transaction can consume.
# The default value is 70% of the heap size limit.
#dbms.memory.transaction.total.max=256m
# Limit the amount of memory that a single transaction can consume.
# By default there is no limit.
#db.memory.transaction.max=16m
# Transaction state location. It is recommended to use ON_HEAP.
# db.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:
server.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.
#server.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
server.bolt.enabled=true
#server.bolt.tls_level=DISABLED
#strex开启
server.bolt.listen_address=:7687
#server.bolt.advertised_address=:7687
# HTTP Connector. There can be zero or one HTTP connectors.
server.http.enabled=true
#strex开启
server.http.listen_address=:7474
#server.http.advertised_address=:7474
# HTTPS Connector. There can be zero or one HTTPS connectors.
server.https.enabled=false
#server.https.listen_address=:7473
#server.https.advertised_address=:7473
# Number of Neo4j worker threads.
#server.threads.worker_count=
#*****************************************************************
# SSL policy configuration
#*****************************************************************
# 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
#dbms.logs.http.enabled=true
# To enable GC Logging, uncomment this line
#server.logs.gc.enabled=true
# GC Logging Options
# see https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-BE93ABDC-999C-4CB5-A88B-1994AAAC74D5
#server.logs.gc.options=-Xlog:gc*,safepoint,age*=trace
# Number of GC logs to keep.
#server.logs.gc.rotation.keep_number=5
# Size of each GC log that is kept.
#server.logs.gc.rotation.size=20m
#*****************************************************************
# Miscellaneous configuration
#*****************************************************************
# 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.
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.
#db.tx_log.rotation.retention_policy=2 days
# Whether or not any database on this instance are read_only by default.
# If false, individual databases may be marked as read_only using dbms.database.read_only.
# If true, individual databases may be marked as writable using dbms.databases.writable.
dbms.databases.default_to_read_only=false
# 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}
#server.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.allowlist=apoc.coll.*,apoc.load.*,gds.*
#********************************************************************
# JVM Parameters
#********************************************************************
# G1GC generally strikes a good balance between throughput and tail
# latency, without too much tuning.
server.jvm.additional=-XX:+UseG1GC
# Have common exceptions keep producing stack traces, so they can be
# debugged regardless of how often logs are rotated.
server.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.
...
[root@localhost conf]# cd ..
[root@localhost neo4j-community-5.10.0]# ls
bin conf import lib LICENSES.txt logs packaging_info README.txt UPGRADE.txt
certificates data labs licenses LICENSE.txt NOTICE.txt plugins run
[root@localhost neo4j-community-5.10.0]# cd bin/
[root@localhost bin]# ls
completion cypher-shell neo4j neo4j-admin
[root@localhost bin]# ./neo4j start
[root@localhost bin]# ./neo4j start
Directories in use:
home: /usr/local/src/neo4j-community-5.10.0
config: /usr/local/src/neo4j-community-5.10.0/conf
logs: /usr/local/src/neo4j-community-5.10.0/logs
plugins: /usr/local/src/neo4j-community-5.10.0/plugins
import: /usr/local/src/neo4j-community-5.10.0/import
data: /usr/local/src/neo4j-community-5.10.0/data
certificates: /usr/local/src/neo4j-community-5.10.0/certificates
licenses: /usr/local/src/neo4j-community-5.10.0/licenses
run: /usr/local/src/neo4j-community-5.10.0/run
Starting Neo4j.
WARNING: Max 4096 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Started neo4j (pid:2055). It is available at http://0.0.0.0:7474
There may be a short delay until the server is ready.
[root@localhost bin]# firewall-cmd --zone=public --add-port=7687/tcp --permanent
success
[root@localhost bin]# firewall-cmd --zone=public --add-port=7474/tcp --permanent
success
[root@localhost bin]# ./neo4j status
Neo4j is running at pid 2055