注意:
Neo4j版本需要和JDK版本对应,Neo4j 4.4.x对应的是JDK8或JDK11
从dockerHub上下载neo4j镜像

执行命令,下载镜像
docker pull neo4j:4.4.17-community

执行命令
bashdocker image ls

执行命令
bashdocker 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

bashdocker ps`

bashdocker exec -it xxx bash


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

执行简单查询
cyphermatch (n) return n;

注意:正常输出结果,说明安装成功
配置监听的ip和端口



进入安装目录下的 /plugins
把插件上传到该目录
修改配置文件
重启服务
Neo4j 3.x 引入了用户定义过程和函数的概念。 这些是某些功能的自定义实现,不能(轻易)用 Cypher 本身表达。 它们是用 Java 实现的,可以很容易地部署到您的 Neo4j 实例中,然后直接从 Cypher 调用。
APOC 库包含许多(大约 450 个)过程和函数,可帮助完成数据集成、图形算法或数据转换等领域的许多不同任务。
注意需要
neo4j的版本和apoc的版本对应
本教程使用 neo4j 4.4.17,对应的 APOC版本是 4.4.0.1

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

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

修改配置,启用gds $NEO4j_HOME/conf/neo4j.conf
xmldbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,gds.*
添加插件到 $NEO4J_HOME/plugins
neo4j-graph-data-science-2.3.0.jar

如果添加了插件,没有修改配置文件,neo4j启动会报空指针错误。
procedure自定义procedure插件,可以用来封装负载的
cypher语句
dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*
- 添加插件到 $NEO4J_HOME/plugins
- 我把
Neo4j的自定义插件放到到了如下模块中. 参考:widdo.widdo-starter-neo4j/plugins/procedures
widdo-starter-neo4j-263.1.1.0.jar

Neo4j启动之后,访问不了,查看日志,发现报空指针错误
原因可能很多种,记录遇到的
GDS插件. 添加了
GDS插件,但是配置文件中,没有添加对应的配置。此时,会导致Neo4j报空指针错误
查看是否添加
GDS相关的配置。如下:
dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,gds.*
/plugin下有多个apoc插件,不同版本的话,启动会报错。当前启动脚本中已经配置了apoc插件,但是默认不显示版本信息。如果在上传不同版本的就会报错,最好启动命令中去掉apoc插件的配置。采用单独上传的方式
plugin中需要添加
mysql-connector-java依赖包


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