不同版本的neo4j对操作系统、软硬件环境的支持不同,本文讲述neo4j 4.4版本的安装,因此可以通过下面的官方文档链接查看:https://neo4j.com/docs/operations-manual/4.4/installation/requirements/。也可以手动调整neo4j版本,查看不同的要求
![image-20230522142221929](/Users/weiyong/Library/Application Support/typora-user-images/image-20230522142221929.png)
由上图可知,neo4j 4.4版本可以再centos7上安装、且要求使用jdk的版本为openjdk11。本文仅介绍centos7上安装neo4j 4.4版本。
安装openjdk11
如果机器没有openjdk11则需要安装,这里使用yum进行安装。
yum install java-11-openjdk
记住它的安装位置为:/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64
。因为安装neo4j的机器默认的jdk版本有可能不是openjdk11,因此在启动neo4j的时候需要指定openjdk11的位置。本文为了便于讲述,这个位置我们先用变量NEO4J_JAVA_HOME来表示。
安装neo4j 4.4
本次使用源码包安装,从官网(https://neo4j.com/download-center/#community)下载neo4j 4.4的tar包。
![image-20230522143420532](/Users/weiyong/Library/Application Support/typora-user-images/image-20230522143420532.png)
下载后tar包的名称为:neo4j-community-4.4.20-unix.tar.gz。我想让这个程序安装到/usr/local/目录下,因此我将下好的包放到了/usr/local/目录下。
解压:
tar zxf /usr/local/neo4j-community-4.4.20-unix.tar.gz
解压后在/usr/local/同目录下,可以看到解压后的目录:
/usr/local/neo4j-community-4.4.20
本文为了便于讲述,这个目录使用变量NEO4J_HOME表示
NEO4J_HOM目录中有如下目录,它们的含义如下:
bin # 存放可执行文件
certificates
conf # 存放neo4j的配置
data # 存放数据库
import
labs
lib
licenses
logs # 存放日志
plugins # 存放插件
run # 存放neo4j的pid文件
启动neo4j的命令就存放在<NEO4J_HOME>/bin/目录下,启动neo4j之前还需要指定一下jdk版本,不过为了文章的连续性,先将启动neo4j的命令列出:
<NEO4J_HOME>/bin/neo4j console # 作为控制台程序(前台程序)启动,如果按ctrl+c则终止
<NEO4J_HOME>/bin/neo4j start # 作为后台程序启动
启动neo4j 4.4
Neo4j 4.4使用openjdk11才能正确启动。
查看机器默认的jdk版本可以使用如下命令:
java --version
如果看到如下输出则不需要修改neo4j的启动程序。
openjdk 11.0.19 2023-04-18 LTS # 可以看到版本为11.0.19,符合条件
OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el7_9) (build 11.0.19+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el7_9) (build 11.0.19+7-LTS, mixed mode, sharing)
如果机器默认的jdk版本不是openjdk11,则需要修改neo4j的启动程序来指定jdk版本。
编辑<NEO4J_HOME>/bin/neo4j文件,在70行左右增加内容:JAVA_HOME=<NEO4J_JAVA_HOME>
, 将NEO4J_JAVA_HOME换成具体的地址。如下所示:
![image-20230522150223313](/Users/weiyong/Library/Application Support/typora-user-images/image-20230522150223313.png)
然后就可以通过<NEO4J_HOME>/bin/neo4j console 命令启动neo4j了。启动后可以查看<NEO4J_HOME>/logs/debug.log日志看是否有报错。
为什么是<NEO4J_HOME>/bin/neo4j文件70行左右增加JAVA_HOME?
应为从这一行开始,会构造与JAVA_HOME相关的变量(如JAVACMD、CLASSPATH等),最后通过JAVACMD启动neo4j。这个要查看<NEO4J_HOME>/bin/neo4j脚本是如何写的,然后确定位置。
配置neo4j 4.4在系统上自动启动
创建/usr/lib/systemd/system/neo4j.service文件,然后填充如下内容
[Unit]
Description=Neo4j Graph Database
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=<NEO4J_HOME>/bin/neo4j console
Restart=on-abnormal
Environment="NEO4J_CONF=<NEO4J_HOME>/conf" "NEO4J_HOME=<NEO4J_HOME>"
LimitNOFILE=60000
TimeoutSec=120
[Install]
WantedBy=multi-user.target
将<NEO4J_HOME>替换为具体的值。
重新加载systemctl配置
systemctl daemon-reload
配置neo4j随系统启动
systemctl enable neo4j
其它命令:
systemctl start neo4j # 启动neo4j
systemctl start neo4j # 重启neo4j
systemctl status neo4j # 查看neo4j的状态