neo4j-shell运行Cypher脚本的示例

时间:2017-02-01 14:45:46

标签: neo4j neo4j-shell

我需要从命令行对Neo4J数据库运行Cypher查询(用于批处理调度)。

当我运行时:

./neo4j-shell -file /usr/share/neo4j/scripts/query.cypher -path /usr/share/neo4j/neo4j-community-3.1.1/data/databases/graph.db

我收到此错误:

ERROR (-v for expanded information):
        Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, /usr/share/neo4j/neo4j-community-3.1.1/data/databases/graph.db

该数据库上有一个正在运行的Neo4J实例(localhost:7474)。我需要脚本来对它执行查询。

注意:为了整洁,这是original question的分割。

2 个答案:

答案 0 :(得分:2)

好的,我今天刚刚发布了一个新的Neo4j-community-3.1.1实例,遇到了完全相同的问题。请注意,我已经使用批量导入工具创建了一个数据库,因此在使用shell之前,可能需要为数据库(mkdir data/databases/graph.db)创建一个目录。

我相信您的问题可能是您有一个针对您尝试访问的数据库运行的Neo4j进程实例。

对我来说,关闭Neo4j,然后使用明确的路径启动shell:

cd /path/to/neo4j-community-3.1.1/
bin/neo4j stop ## assuming it is already running (may need a port specifier)
bin/neo4j-shell -path data/databases/graph.db

出于某种原因,我认为你可以同时运行shell和服务器,但显然情况并非如此。如果我错了,希望有人会纠正我。

答案 1 :(得分:1)

要在neo4j服务器运行时从文件执行(一个或多个)Cypher语句,您可以使用APOC过程apoc.cypher.runFile(file or url)

由于您提到“批量计划”,Job management and periodic execution APOC程序可能会有所帮助。反过来,这些程序可以执行对apoc.cypher.runFile的调用。