linux docker neo4j 导出 (windows 导入)

发布于:2025-08-19 ⋅ 阅读:(17) ⋅ 点赞:(0)

由于 neo4j 导出需要停止服务

但是我在docker部署的neo4j 因此无法停止进程 因为一旦停止则会停止docker容器

导致无法执行命令


使用临时容器解决


version: '3.8'

services:
  neo4j:
    image: neo4j:5.26.9
    container_name: neo4j
    restart: unless-stopped
    ports:
      - "7474:7474"  # HTTP接口
      - "7687:7687"  # Bolt协议
    volumes:
      - ./data:/data
      - ./logs:/logs
      - ./plugins:/plugins
      - ./import:/var/lib/neo4j/import
      - ./backup:/backup
    environment:
      - NEO4J_server_default__listen__address=0.0.0.0
      - NEO4J_server_default__advertised__address=localhost
      - NEO4J_dbms_connector_bolt_advertised__address=:7687
      - NEO4J_dbms_connector_http_advertised__address=:7474
      - NEO4J_PLUGINS=["apoc"]
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "localhost:7474"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 60s

volumes:
  data:
  logs:
  plugins:
  import:

这是我的编排 重点关注./backup:/backup 因为在临时容器内到处的文件可以直接挂载到宿主机上

1 首先停止服务

   docker-compose down

然后自行在你的宿主机上没有backup就创建这个文件夹


给上权限 (这步很重要)!!!

 chmod -R 777 ./backup

2.创建临时容器

  • 在你的宿主机neo4j执行如下命令 (注意版本要一致)
   docker run --rm -it \
     -v $(pwd)/data:/data \
     -v $(pwd)/backup:/backup \
     neo4j:5.26.9 bash
   

3 导出

   neo4j-admin database dump neo4j --to-path=/backup/ --verbose

导出成功后 执行 exit 退出

进入宿主机的backup 就可以看到备份的文件了




windows 导入 注意neo4j版本须一致

  • D:\backup 里面放入上面导出的文件
   neo4j-admin.bat database load neo4j --from-path=D:\backup --overwrite-destination=true --verbose
   


Linux 导入

需要先停止容器 
docker-compose down
然后在第2步 容器内 执行:
neo4j-admin database load neo4j --from-path=/backup/ --overwrite-destination=true --verbose

导入成功后执行 
exit; 
退出需要重新运行neo4j
docker-compose up -d

网站公告

今日签到

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