Docker环境下neo4j-admin import执行失败:文件不存在报错
解决Docker中Neo4j导入CSV文件找不到的问题
核心问题:路径解析错误
你在容器终端执行导入命令时,当前工作目录是/var/lib/neo4j,使用相对路径import/nodes.csv会被解析为/var/lib/neo4j/import/nodes.csv,但你挂载的目录是根目录下的/import,因此必须使用绝对路径指定CSV文件。
分步解决方案
1. 修正导入命令的文件路径
将命令中的相对路径改为绝对路径/import/xxx.csv,修改后的完整命令:
bin/neo4j-admin database import full --id-type=INTEGER \ --nodes=NodeA=/import/nodes.csv \ --nodes=NodeB=/import/nodesB.csv \ --relationships=RELA=/import/rels.csv \ --multiline-fields=true
2. 停止运行中的Neo4j服务
Neo4j 5.x的database import full命令要求目标数据库(默认是neo4j)必须处于停止状态。容器启动后默认会运行Neo4j服务,先执行停止命令:
bin/neo4j stop
等待服务完全停止后,再执行导入命令。
3. 可选:导入到新数据库(不影响默认库)
如果不想停止默认的neo4j数据库,可以导入到一个全新的数据库(例如mydb),命令如下:
bin/neo4j-admin database import full --id-type=INTEGER \ --database=mydb \ --nodes=NodeA=/import/nodes.csv \ --nodes=NodeB=/import/nodesB.csv \ --relationships=RELA=/import/rels.csv \ --multiline-fields=true
导入完成后启动服务,通过Cypher命令:use mydb即可切换到新数据库查看数据。
4. 验证挂载目录权限(排查补充)
若修正路径后仍报错,检查容器内/import目录的文件权限:
ls -l /import
确保文件对neo4j用户可读,若权限不足,执行以下命令修改:
chown -R neo4j:neo4j /import
内容的提问来源于stack exchange,提问作者iuhztr tzhjzuk
相关产品推荐
相关产品推荐

