我有一个密码脚本文件,我想直接运行它。
据我所知,我能够找到的所有答案都使用命令neo4j-shell,在我的版本(Neo4j服务器3.5.5)中,该命令似乎被废弃,并被命令cyphershell取代。
使用命令sudo ./neo4j-community-3.5.5/bin/cypher-shell --help,我得到了以下说明。
使用方法: cypher-shell -h -u用户名-加密{true,false} --调试--示例行示例- -v -失败-快速-失败-在端 一个命令行shell,您可以在其中对Neo4j实例执行Cypher。默认情况下,shell是交互式的,但您可以使用它直接在命令行上传递密码,也可以使用cypher语句(Windows上需要Powershell )来编写脚本。
我的文件如下所示,它试图从csv文件创建一个图形,它来自于“图算法”一书。
WITH "https://github.com/neo4j-graph-analytics/book/raw/master/data" AS base
WITH base + "transport-nodes.csv" AS uri
LOAD CSV WITH HEADERS FROM uri AS row
MERGE (place:Place {id:row.id})
SET place.latitude = toFloat(row.latitude),
place.longitude = toFloat(row.latitude),
place.population = toInteger(row.population)
WITH "https://github.com/neo4j-graph-analytics/book/raw/master/data/" AS base
WITH base + "transport-relationships.csv" AS uri
LOAD CSV WITH HEADERS FROM uri AS row
MATCH (origin:Place {id: row.src})
MATCH (destination:Place {id: row.dst})
MERGE (origin)-[:EROAD {distance: toInteger(row.cost)}]->(destination)当我试图用命令直接传递文件时:
sudo ./neo4j-community-3.5.5/bin/cypher-shell neo_4.cypher首先,它询问用户名和密码,但是在输入正确的密码(错误的密码导致错误的The client is unauthorized due to authentication failure.)之后,我得到了错误:
Invalid input 'n': expected <init> (line 1, column 1 (offset: 0))
"neo_4.cypher"
^当我尝试使用命令时:
sudo cat neo_4.cypher| sudo ./neo4j-community-3.5.5/bin/cypher-shell -u usr -p 'pwd'不生成输出,也不生成图形。
如何使用neo4j命令cypher-shell运行密码脚本文件
发布于 2019-05-08 11:16:12
问题在于密码文件:每一行都应该以分号结束:;。我仍然需要sudo来运行这个程序。
实际上,从书中取出的文件似乎也包含其他错误。
发布于 2020-07-18 14:06:31
使用cypher-shell -f yourscriptname。有关更多描述,请与--help联系。
发布于 2019-05-08 10:44:41
我想关键在这里:
cypher-shell -- help
... Stuff deleted
positional arguments:
cypher an optional string of cypher to execute and then exit这意味着pare测量仪是实际的密码代码,而不是文件名。因此,这样做是可行的:
GMc@linux-ihon:~> cypher-shell "match(n) return n;"
username: neo4j
password: ****
+-----------------------------+
| n |
+-----------------------------+
| (:Job {jobName: "Job01"}) |
| (:Job {jobName: "Job02"}) |但事实并非如此(因为文本"neo_4.cypher“不是一个有效的密码查询)
cypher-shell neo_4.cypher帮助还说:
example of piping a file:
cat some-cypher.txt | cypher-shell所以:
cat neo_4.cypher | cypher-shell应该行得通。你的问题可能是所有的问题。特别是猫. sudo密码壳。sudo有可能保护密码壳不受某些任意输入的影响(尽管在我的系统上似乎没有这样做)。
如果您确实需要使用sudo来运行密码,请尝试使用以下方法:
sudo cypher-shell arguments_as_needed < neo_4.cypher哦,而且,您的脚本没有返回,所以它可能不会显示任何数据,但是您仍然应该看到加载的记录摘要报告。
也许先尝试一些简单点的东西,比如简单的匹配.回来..。在您的脚本中查询。
哦,别忘了用分号终止密码查询!
https://stackoverflow.com/questions/56038659
复制相似问题