csv 无法在以下位置加载外部资源:文件:/var/lib/neo4j/import with Neo4j docker image

mzillmmw  于 2023-07-31  发布在  Docker
关注(0)|答案(2)|浏览(128)

我尝试在Neo4j中从csv加载节点,然而,每次我尝试这样做时,我都会得到这样的错误:

Neo.ClientError.Statement.ExternalResourceFailed: Couldn't load the external resource at: file:/var/lib/neo4j/import/events.csv

字符串
我的event.csv文件在/var/lib/neo4j/import目录下,有777个权限。我尝试运行的查询看起来像这样:

USING PERIODIC COMMIT 500 LOAD CSV WITH HEADERS FROM "file:///events.csv"  AS line
CREATE (e:Event { event_id: toInteger(line.event_id), 
created: line.created,
description: line.description })


我使用最新版本的docker image设置了Neo4j。文件权限或文件位置可能有什么问题?

ht4b089n

ht4b089n1#

Docker容器无法访问主机上的外部文件,除非您将这些文件挂载到容器中。
解决方案是在调用docker run命令时将目录绑定挂载到容器:

docker run -v /var/lib/neo4j/import:/var/lib/neo4j/import ... <IMAGE> <CMD>

字符串

siotufzp

siotufzp2#

除了在运行容器时挂载“dataimport”卷之外,请确保在conf dir的neo4j.conf文件中具有以下配置:

server.directories.import=/var/lib/neo4j/import
dbms.security.allow_csv_import_from_file_urls=true

字符串
这是我的docker run命令:

docker run \
    --restart always \
    --detach \
    --publish=7474:7474 --publish=7687:7687 \
    --env NEO4J_PLUGINS='["apoc", "graph-data-science", "bloom"]' \
    --volume=/opt/neo4j/data:/data \
    --volume=/opt/neo4j/logs:/logs \
    --volume=/opt/neo4j/conf:/conf \
    --volume=/opt/neo4j/import:/var/lib/neo4j/import \
    --env NEO4J_AUTH=neo4j/my_password\
    neo4j:5.9.0

相关问题