Neo4j 3.5配置apoc.export.file.enabled=true仍无法执行APOC导出怎么办
Neo4j 3.5 APOC导出功能异常解决方案
问题描述
执行APOC GraphML全量导出语句:CALL apoc.export.graphml.all('/tmp/complete-graph.graphml', {useTypes:true, storeNodeIds:false})
返回如下错误:
Failed to invoke procedure apoc.export.graphml.all: Caused by: java.lang.RuntimeException: Export to files not enabled, please set apoc.export.file.enabled=true in your neo4j.conf
已确认完成以下操作:
- 在neo4j.conf末尾添加了配置:
dbms.security.procedures.unrestricted=apoc.* dbms.directories.plugins=/var/lib/neo4j/plugins apoc.export.file.enabled=true apoc.import.file.enabled=true
- 插件目录
/var/lib/neo4j/plugins下已存放适配3.5版本的APOC包:apoc-3.5.0.11-all.jar,权限正常 - 运行环境为Ubuntu 18 + Neo4j 3.5
排查解决步骤
- 确认修改的是服务实际加载的配置文件
Ubuntu环境通过apt源安装的Neo4j默认加载的配置文件路径为/etc/neo4j/neo4j.conf,而非其他手动下载的解压包内的conf文件。可执行命令sudo find / -name neo4j.conf列出系统内所有同名配置文件,逐一检查确认修改的是生效的配置版本。 - 重启Neo4j服务使配置生效
修改配置后必须重启服务才会生效,apt安装的版本执行命令:sudo systemctl restart neo4j
手动解压运行的版本需要先终止原有Neo4j进程,再重新启动实例。 - 验证配置是否生效
在Neo4j浏览器或cypher-shell中执行如下语句,查询导出开关的实际值:CALL dbms.listConfig('apoc.export.file.enabled') YIELD name, value RETURN name, value;
若返回的value为true,说明开关配置已生效;若仍为false,回到上一步检查配置文件路径与配置格式是否正确。 - 排查配置重复冲突
打开已修改的neo4j.conf文件,搜索apoc.export.file.enabled相关条目,确认不存在未注释的apoc.export.file.enabled=false配置项,删除重复的同key配置,仅保留值为true的条目即可。 - 验证APOC插件加载状态
若配置已生效仍报错,执行如下语句检查APOC导出相关过程是否正常加载:CALL dbms.procedures() YIELD name WHERE name STARTS WITH 'apoc.export' RETURN count(*);
返回结果大于0说明插件加载正常,否则检查插件目录权限、APOC包是否损坏,当前使用的APOC版本与Neo4j 3.5版本适配,无需更换版本。
内容的提问来源于stack exchange,提问作者Antony
相关产品推荐
相关产品推荐

