Ubuntu版 Neo4j 数据库成功安装教程
查了不少资料,在尝试安装,不断的报错下面,最终neo4j成功,记录一下如何安装Neo4j图数据库、如何进行环境配置及服务的安装。
在以下环境中安装
- ubuntu 20.04.1
- java系统默认8
目标安装:
- neo4j-community-4.2.19
1、Neo4j 下载
在官网下载 社区版本neo4j-community-4.2.19, 这边要注意不要下错啦。
https://neo4j.com/download-center/#community
之后我这边是放在系统中 /usr/local 位置,大家可自由选择,自定义。(若和我一样安装到此处,启动neo4j的时候要用sudo启动,否则会出现下面第三大点,出现的报错。)
对压缩包进行解压至本目录下
tar -xzvf neo4j-community-4.2.19-unix.tar.gz
2、JDK11 下载
neo4j的运行,其需要的jdk都是要根据自己neo4j的版本,来安装对应的jdk版本,这边尝试了好几次,同时也看了网上有些乱的帖子,最后根据neo4j-community-4.2.19,安装JDK11,使之成功安装完成了。
在安装的过程中,根据报错提示,推断应该neo4j 4.x的版本,则需要安装JDK11,其他的版本号是不同的JDK,看到网上的帖子好像neo4j 3.x的版本,需要安装JDK8(还没尝试过,证实过)
# 下载安装jdk11
sudo apt install openjdk-11-jdk
# 配置环境
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 # 这边首先需要自己确定一下路径是不是这个/usr/lib/jvm/java-1.11.0-openjdk-amd64
export JRE_HOME=${
JAVA_HOME}/jre
export CLASSPATH=.:${
JAVA_HOME}/lib:${
JRE_HOME}/lib
export PATH=$NEO4J_HOME/bin
之后输入
java -version
即可看到jdk版本变为11.0.16
3、修改配置,启动Neo4j
进去Neo4j 的conf目录,我这边是 cd /usr/local/neo4j-community-4.2.19/conf/
sudo vim neo4j.conf
修改如下:
# 修改23行,去掉 #号
dbms.directories.import=import # 可从任意路径读取文件
# 修改71行,去掉 #号
dbms.connectors.default_listen_address=0.0.0.0 #修改为远程通过ip访问neo4j数据库
# 默认bolt端口是7687,http端口是7474,https端口是7473,不修改下面3项也可以
# 端口可以自定义,只要不和其他端口冲突就行
# 修改92行,去掉 #号
dbms.connector.bolt.listen_address=:7687 #修改为bolt端口为7687
# 修改97行,去掉 #号
dbms.connector.http.listen_address=:7474 #修改为http端口为7474
# 修改102行,去掉 #号
dbms.connector.https.listen_address=:7473 #修改为https端口为7473
# 修改230行,去掉 #号
dbms.security.allow_csv_import_from_file_urls=true # 允许从远程的url,来载入csv文件
保存退出,进去Neo4j 的bin目录,我这边是 cd /usr/local/neo4j-community-4.2.19/bin/
启动命令
./neo4j console
#其他命令,启动服务,停止服务,重启服务、查询服务的状态
./neo4j start
./neo4j stop
./neo4j restart
./neo4j status
因为我这边安装的是在/usr/local 目录下面,起初一直报错,网上也没有相关的解答。
开始就想了一段时间也没想到办法,或者看到解决方案,最后才猜出来,是权限的问题。
这边使用sudo运行即可解决。
sudo ./neo4j console
报错如下:
2022-09-22 09:43:07.833+0000 INFO Starting...
ERROR StatusLogger RollingFileManager (/usr/local/neo4j-community-4.2.19/logs/debug.log) java.io.FileNotFoundException: /usr/local/neo4j-community-4.2.19/logs/debug.log (Permission denied)
java.io.FileNotFoundException: /usr/local/neo4j-community-4.2.19/logs/debug.log (Permission denied)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:158)
at org.neo4j.logging.shaded.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:746)
at org.neo4j.logging.shaded.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:716)
at org.neo4j.logging.shaded.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
at org.neo4j.logging.shaded.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
at org.neo4j.logging.shaded.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
at org.neo4j.logging.shaded.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
at org.neo4j.logging.log4j.LogConfig.createRollingFileAppender(LogConfig.java:183)
at org.neo4j.logging.log4j.LogConfig.getAppender(LogConfig.java:152)
at org.neo4j.logging.log4j.LogConfig.configureLogging(LogConfig.java:105)
at org.neo4j.logging.log4j.LogConfig$Builder.build(LogConfig.java:293)
at org.neo4j.graphdb.factory.module.GlobalModule.createLogService(GlobalModule.java:337)
at org.neo4j.graphdb.factory.module.GlobalModule.<init>(GlobalModule.java:174)
at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.createGlobalModule(DatabaseManagementServiceFactory.java:252)
at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.build(DatabaseManagementServiceFactory.java:126)
at org.neo4j.server.CommunityBootstrapper.createNeo(CommunityBootstrapper.java:36)
at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:134)
at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:90)
at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:35)
2022-09-22 09:43:07.874+0000 ERROR Failed to start Neo4j on dbms.connector.http.listen_address, a socket address. If missing port or hostname it is acquired from dbms.default_listen_address.
java.lang.IllegalStateException: ManagerFactory [org.neo4j.logging.shaded.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@3e792ce3] unable to create manager for [/usr/local/neo4j-community-4.2.19/logs/debug.log] with data [org.neo4j.logging.shaded.log4j.core.appender.rolling.RollingFileManager$FactoryData@53bc1328[pattern=/usr/local/neo4j-community-4.2.19/logs/debug.log.%i, append=true, bufferedIO=true, bufferSize=8192, policy=SizeBasedTriggeringPolicy(size=20971520), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=false), advertiseURI=null, layout=org.neo4j.logging.log4j.Neo4jLogLayout@26f143ed, filePermissions=null, fileOwner=null]]
at org.neo4j.logging.shaded.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:116) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.shaded.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.shaded.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.shaded.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.log4j.LogConfig.createRollingFileAppender(LogConfig.java:183) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.log4j.LogConfig.getAppender(LogConfig.java:152) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.log4j.LogConfig.configureLogging(LogConfig.java:105) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.logging.log4j.LogConfig$Builder.build(LogConfig.java:293) ~[neo4j-logging-4.2.19.jar:4.2.19]
at org.neo4j.graphdb.factory.module.GlobalModule.createLogService(GlobalModule.java:337) ~[neo4j-4.2.19.jar:4.2.19]
at org.neo4j.graphdb.factory.module.GlobalModule.<init>(GlobalModule.java:174) ~[neo4j-4.2.19.jar:4.2.19]
at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.createGlobalModule(DatabaseManagementServiceFactory.java:252) ~[neo4j-4.2.19.jar:4.2.19]
at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.build(DatabaseManagementServiceFactory.java:126) ~[neo4j-4.2.19.jar:4.2.19]
at org.neo4j.server.CommunityBootstrapper.createNeo(CommunityBootstrapper.java:36) ~[neo4j-4.2.19.jar:4.2.19]
at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:134) [neo4j-4.2.19.jar:4.2.19]
at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:90) [neo4j-4.2.19.jar:4.2.19]
at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:35) [neo4j-4.2.19.jar:4.2.19]
2022-09-22 09:43:07.878+0000 INFO Neo4j Server shutdown initiated by request
2022-09-22 09:43:07.878+0000 INFO Stopped.
大功告成了!