编辑
2026-04-01
数据库
00

目录

Neo4j安装
1. 下载镜像
2. 查看镜像
3. 启动镜像
4. 查看容器
5. 进入容器
6. 修改neo4j用户名密码
7. 验证neo4j是否安装成功
8. 配置neo4j
a. 配置远程访问
9. 浏览器访问
10. 安装插件
a. apoc插件
1. 版本
2. 配置
b. gds插件
1. 版本
2. 配置
3. 问题
c. 自定义插件
1. procedure
配置
插件
11. 问题
1. 启动失败
分析
1. GDS插件
问题
解决
2. 多插件问题
apoc.load.driver失败

Neo4j安装

注意:Neo4j版本需要和JDK版本对应Neo4j 4.4.x对应的是 JDK8或JDK11image-20230210173358250

1. 下载镜像

从dockerHub上下载neo4j镜像

image-20230208112856268

执行命令,下载镜像

docker pull neo4j:4.4.17-community

image-20230208112935569

2. 查看镜像

执行命令

bash
docker image ls

image-20230208113121561

3. 启动镜像

执行命令

bash
docker run -d --name neo4j \ -p 7474:7474 -p 7687:7687 \ -v /usr/local/software/docker/neo4j/data:/data \ -v /usr/local/software/docker/neo4j/logs:/logs \ -v /usr/local/software/docker/neo4j/conf:/var/lib/neo4j/conf \ -v /usr/local/software/docker/neo4j/import:/var/lib/neo4j/import \ -v /usr/local/software/docker/neo4j/plugins:/plugins \ -e NEO4J_apoc_export_file_enabled=true \ -e NEO4J_apoc_import_file_enabled=true \ -e NEO4J_apoc_import_file_use__neo4j__config=true \ -e NEO4JLABS_PLUGINS=\[\"apoc\"\] \ -e NEO4J_AUTH=neo4j/widdo_neo4j \ neo4j:4.4.17

image-20230208113327727

4. 查看容器

bash
docker ps`

image-20230208113419641

5. 进入容器

bash
docker exec -it xxx bash

image-20230208114136601

image-20230208114148864

6. 修改neo4j用户名密码

  1. 使用 /bin/cypher-shell脚本 连接neo4j数据库
  2. 输入用户名密码
bash
/bin/cypher-shell

image-20230208114259903

7. 验证neo4j是否安装成功

执行简单查询

cypher
match (n) return n;

image-20230208114353843

注意:正常输出结果,说明安装成功

8. 配置neo4j

a. 配置远程访问

配置监听的ip和端口

image-20230210180806296

image-20230210180752666

9. 浏览器访问

image-20230208133446264

10. 安装插件

  1. 进入安装目录下的 /plugins

  2. 把插件上传到该目录

  3. 修改配置文件

  4. 重启服务

a. apoc插件

Neo4j 3.x 引入了用户定义过程和函数的概念。 这些是某些功能的自定义实现,不能(轻易)用 Cypher 本身表达。 它们是用 Java 实现的,可以很容易地部署到您的 Neo4j 实例中,然后直接从 Cypher 调用。

APOC 库包含许多(大约 450 个)过程和函数,可帮助完成数据集成、图形算法或数据转换等领域的许多不同任务。

1. 版本

注意需要neo4j的版本和apoc的版本对应

本教程使用 neo4j 4.4.17,对应的 APOC版本是 4.4.0.1

image-20230210172620829

2. 配置

dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*

注意:默认不放开该配置,则自动加载apoc下的所有procedures,如果想要有选择的加载,则可以进行指定。如上所示,只加载apoc.collapoc.load下的procedures

image-20230208133749313

b. gds插件

Neo4j Graph Data Science (GDS) 库提供高效实施的通用图形算法的并行版本,作为Cypher 过程进行公开。 此外,GDS 包括机器学习管道来训练预测监督模型来解决图形问题,例如预测缺失关系。

1. 版本

注意Neo4j的版本需要和Neo4j gds版本对应

image-20230210173536292

2. 配置

修改配置,启用gds $NEO4j_HOME/conf/neo4j.conf

xml
dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,gds.*

添加插件到 $NEO4J_HOME/plugins

neo4j-graph-data-science-2.3.0.jar

image-20230210172355192

3. 问题

如果添加了插件,没有修改配置文件,neo4j启动会报空指针错误。

c. 自定义插件

1. procedure

自定义procedure插件,可以用来封装负载的cypher语句

配置
dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*
插件
  1. 添加插件到 $NEO4J_HOME/plugins
  2. 我把Neo4j的自定义插件放到到了如下模块中. 参考:widdo.widdo-starter-neo4j/plugins/procedures
widdo-starter-neo4j-263.1.1.0.jar

image-20230208133754716

11. 问题

1. 启动失败

Neo4j启动之后,访问不了,查看日志,发现报空指针错误

分析

原因可能很多种,记录遇到的

1. GDS插件
问题

. 添加了 GDS插件,但是配置文件中,没有添加对应的配置。此时,会导致Neo4j 报空指针错误

解决

查看是否添加GDS相关的配置。如下:

dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,gds.*
2. 多插件问题

/plugin下有多个apoc插件,不同版本的话,启动会报错。当前启动脚本中已经配置了apoc插件,但是默认不显示版本信息。如果在上传不同版本的就会报错,最好启动命令中去掉 apoc插件的配置。采用单独上传的方式

apoc.load.driver失败

plugin中需要添加mysql-connector-java依赖包

image-20230323151307292

image-20230323151248440

本文作者:widdo

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!