前言:看了几篇别人的教程其中出现一些错误,记录一下最终成功的方法。
参考教程:
迁移MySQL的数据到Neo4j
neo4j安装APOC插件

方法:

一:下载所需jar包

apoc下载地址
mysql-connector-java下载地址
放在下图目录下,注意:我的Neo4j版本是3.5.26,对应的apoc版本也是3.5.*,下载过参考教程里的版本,启动服务是时,服务无法启动。
在这里插入图片描述

二、修改配置文件

在这里插入图片描述
①修改

# Whether requests to Neo4j are authenticated.
# To disable authentication, uncomment this line
#https://www.cnblogs.com/jpfss/p/11365342.html
dbms.security.auth_enabled=true

②添加

#文初
dbms.security.procedures.unrestricted=apoc.*
apoc.import.file.enabled=true
#文末
dbms.memory.pagecache.size=10g
dbms.memory.heap.initial_size=1g
dbms.memory.heap.max_size=4g

三、重启服务

cmd命令行进入如下路径执行:

neo4j restart

在这里插入图片描述

四、查看apoc是否安装成功打开

打开http://localhost:7474/

return apoc.version()

在这里插入图片描述
出现版本号说明插件安装成功!

五、迁移数据

(可选:清空neo4j数据库数据
我的数据库中有两个表,一个存储着节点信息,一个存储着边(关系)的信息。

5.1迁移节点

节点表:

在这里插入图片描述
在Neo4j中执行的语句:

CALL apoc.load.jdbc('jdbc:mysql://localhost:3306/数据库名?user=root&password=root&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC', 'SELECT * FROM `node表名`') YIELD row CREATE (n:Node {id: row.id, name: row.name, classname: row.classname})

Node表示节点名称(类型),可以为其他,如Person等。
属性:{id: row.id, name: row.name, classname: row.classname}

5.2迁移关系

关系表:
在这里插入图片描述

CALL apoc.load.jdbc('jdbc:mysql://localhost:3306/数据库名?user=root&password=root&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC', 'SELECT * FROM `link表名`') YIELD row match (n:Node {id: row.from_node_id}),(m:Node{id:row.to_node_id}) create (n)-[r:from_to{id:row.id,classname:row.classname,kind:row.kind,from_node_id:row.from_node_id,to_node_id:row.to_node_id}]->(m)

大功告成!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐