linux docker neo4j 导出 (windows 导入)
由于 neo4j 导出需要停止服务
但是我在docker部署的neo4j 因此无法停止进程 因为一旦停止则会停止docker容器
导致无法执行命令
使用临时容器解决
version: '3.8'services:neo4j:image: neo4j:5.26.9container_name: neo4jrestart: unless-stoppedports:- "7474:7474" # HTTP接口- "7687:7687" # Bolt协议volumes:- ./data:/data- ./logs:/logs- ./plugins:/plugins- ./import:/var/lib/neo4j/import- ./backup:/backupenvironment:- 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: 30stimeout: 10sretries: 5start_period: 60svolumes: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