neo4j数据库的导入和导出

平时的工作中,我们可能需要将一个数据库的文件导出,然后再将这个文件导入到另一个数据库中,实现数据库的迁移。

本文中主要介绍neo4j的官方管理工具neo4j-admin,来对neo4j数据库文件进行导入和导出。

1.文件导出

(1).停止服务

进入到需导出文件的neo4j的bin目录下,执行 ./neo4j stop 命令先停止服务。

bash 复制代码
./neo4j stop

(2).导出文件

bash 复制代码
neo4j-admin database dump myneo4jdb --to-path=/var/lib/neo4j/backups/

以上的命令会将myneo4jdb这个数据库导入到 /var/lib/neo4j/backups/这个目录下。如果该目录不存在,需要自己创建。最后会导出.dump后缀的数据文件。

(3).启动服务

数据库文件导出完成后,就可以启动服务了。

bash 复制代码
./neo4j start

(4).docker导出

如果我们的neo4j数据库是使用docker部署的话,以下是使用docker命令的方式来导出文件。

停止服务

bash 复制代码
docker stop neo4j_service

导出文件

bash 复制代码
docker run --interactive --tty --rm \
  -v=$(pwd)/db-data:/var/lib/neo4j/data \
  -v=$(pwd)/db-export:/var/lib/neo4j/backups/ \
  neo4j:5.26.2 \
  neo4j-admin database dump myneo4jdb --to-path=/var/lib/neo4j/backups/

以上docker命令中宿主机和docker容器映射挂载了两个目录:1.neo4j数据库数据文件的挂载目录。2.导出完成后导出文件存放的挂载目录。可以看出本例中使用的是5.26.2版本的neo4j数据库镜像。导出命令执行完成后,我们可以在宿主机的db-export目录下看到导出的文件。

启动服务

bash 复制代码
docker start neo4j_service

2.文件导入

(1).停止服务

bash 复制代码
./neo4j stop

(2).导入文件

bash 复制代码
neo4j-admin database load --from-path=/var/lib/neo4j/import/ myneo4jdb --overwrite-destination=true

上述的导入命令是把/var/lib/neo4j/import/目录下的数据库文件导入到目标库,导入后数据库的名称是myneo4jdb,参数**--overwrite-destination=true**的作用是,如果数据库中已经存在了myneo4jdb数据库,则会将myneo4jdb覆盖。

(3).启动服务

复制代码
./neo4j start

(4).docker导入

停止服务

bash 复制代码
docker stop neo4j_service

导入文件

bash 复制代码
  docker run --rm -it \
  -v=$(pwd)/db-data:/var/lib/neo4j/data \
  -v=$(pwd)/import:/var/lib/neo4j/import \
  neo4j:5.26.2 \
  neo4j-admin database load --from-path=/var/lib/neo4j/import/ myneo4jdb --overwrite-destination=true

以上docker命令中宿主机和docker容器映射也挂载了两个目录:1.neo4j数据库数据文件的挂载目录。2.需导入数据库文件放置的目录。我们需要把要导入的数据库文件,放到宿主机的import目录下。

启动服务

bash 复制代码
docker start neo4j_service

3.导入特定账户的数据库

有时候我们导入的neo4j数据库可能是某个特定账户的,需要通过账户和密码才能访问到这个数据库。对于这种情况,我们先使用帐号通过Cypher Shell登录neo4j后,然后创建一个空的目标库,最后在导入数据库时通过**--overwrite-destination=true**的参数,将创建的空库给覆盖掉。需要注意的是导入数据库的名称和创建的空库的名称要一样。

(1).通过Cypher Shell登录neo4j

进入neo4j数据库bin目录下,执行./cypher-shell 命令后,再输入账号和密码,即可登录neo4j数据库。

bash 复制代码
./cypher-shell

(2).创建目标空库

bash 复制代码
-- 登录后,先切换到system数据库
:use system;

-- 尝试创建数据库
create database myneo4jdb;

-- 查看数据库
show databases;

(3).覆盖目标空库

对于以上步骤2中创建的空数据库,我们再使用数据库导出文件将这个空数据覆盖掉就可以了。

bash 复制代码
neo4j-admin database load --from-path=/var/lib/neo4j/import/ myneo4jdb --overwrite-destination=true
相关推荐
不可求~4 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
Lumistory5 小时前
城市建筑照明的落地与长效运营观察
大数据·数据库·中间件·光照贴图
围炉聊科技7 小时前
长期免费的数据库方案——零成本基建系列
数据库
AC赳赳老秦8 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
梁辰兴9 小时前
软件工程:数据结构设计
数据库·软件工程·设计原则·设计方法·梁辰兴·数据库结构设计·数据库结构类型
AC赳赳老秦10 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
灯澜忆梦10 小时前
【MySQL18】进阶篇 | MySQL管理
数据库·mysql
zcmodeltech11 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
AI多Agent协作实战派11 小时前
AI多Agent协作系统实战(四十):AI说“没有错误“,系统判了“测试失败“——一个正则的误判
数据库·人工智能
隔窗听雨眠12 小时前
OceanBase接入DeepSeek:数据库与AI的深度融合如何改写企业数据规则
数据库·人工智能·oceanbase