数据迁移:如何从MySQL数据库高效迁移到Neo4j图形数据库

发布于:2025-08-20 ⋅ 阅读:(16) ⋅ 点赞:(0)

数据迁移:如何从MySQL数据库高效迁移到Neo4j图形数据库

总体步骤

  • 我的Neo4j 5.21.2 ✅
  • 部署APOC插件(社区版已内置)🔌
  • 下载MySQL JDBC驱动📦 → 丢进Neo4j的plugins文件夹
  • 重启Neo4j服务 🔄

1. 安装apoc

1.1 apoc安装

官网下载:https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/tag/5.21.0
apoc插件进行可能在大版本号与Neo4j保持一致,比如我的Neo4j的版本是5.21.2,apoc的版本如果能找到5.21.2最好,否则用5.21.0也是可以的
放在neo4j的plugins文件夹下
然后在neo4j.conf里进行配置

# 启用 APOC 插件
dbms.directories.plugins=plugins

# 允许 APOC 过程执行
dbms.security.procedures.unrestricted=apoc.*,gds.*
dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,apoc.meta.data,apoc.*,gds.*


# 启用文件导入导出(可选)
apoc.import.file.enabled=true
apoc.export.file.enabled=true

重启neo4j

1.2 apoc验证

在Neo4j浏览器上输入

CALL apoc.version()

有返回版本号更好,不返回报错加载失败,貌似也无所谓

2. 安装mysql连接驱动包

2.1 去官方下载

我的是:mysql-connector-java-5.1.47.jar
放在neo4j的plugins文件夹下
重启neo4j

3. 数据导入

3.1 导入命令

CALL apoc.load.jdbc(
  'jdbc:mysql://114.115.200.146:3306/haosen?user=root&password=huawei12345679&serverTimezone=UTC&useSSL=false',
  'select device_name,device_id,device_type,assembly_process,device_form,cycle_time from Case_Device'
) YIELD row
CREATE (:Case_Device {
  device_name: row.device_name, 
  name: row.device_name,
  device_id: row.device_id,
  device_type: row.device_type, 
  assembly_process: row.assembly_process,
  device_form: row.device_form,
  cycle_time: row.cycle_time
});

这里需要注意的是在 JDBC URL 中禁用 SSL,即添加useSSL=false
原因:MySQL 5.x 通常不强制使用 SSL,但 Java 默认启用 SSL,导致协议冲突。


网站公告

今日签到

点亮在社区的每一天
去签到