APOC仅在neo4j中部分安装其扩展(一个程序)

时间:2017-02-16 23:14:14

标签: neo4j neo4j-apoc

我下载了apoc-3.1.0.3-all.jar并将其放入我的windows7 Neo4J 3.1.1系统的插件中。

C:\Users>java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

在计算机上杀死了Neo4J进程,然后重新安装了服务器。

我只看到列出了一个apoc程序,其他人给出了关于缺少程序的错误。 neo4j日志中没有错误的迹象。我尝试解锁jar,然后重新启动服务器。没有运气。

我做

没问题
Call db.schema()

但有些简单:

CALL apoc.help("help")

将导致

There is no procedure with the name `apoc.help` registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.

我做错了什么,我认为一定是我!)

$call dbms.procedures

apoc.schema.assert  apoc.schema.assert(indexes :: MAP?, constraints :: MAP?) :: (label :: STRING?, key :: LIST? OF STRING?, unique :: BOOLEAN?, action :: STRING?)  (empty)
db.awaitIndex   db.awaitIndex(index :: STRING?, timeOutSeconds = 300 :: INTEGER?) :: VOID   Wait for an index to come online (for example: CALL db.awaitIndex(":Person(name)")).
db.constraints  db.constraints() :: (description :: STRING?)    List all constraints in the database.
db.indexes  db.indexes() :: (description :: STRING?, state :: STRING?, type :: STRING?) List all indexes in the database.
db.labels   db.labels() :: (label :: STRING?)   List all labels in the database.
db.propertyKeys db.propertyKeys() :: (propertyKey :: STRING?)   List all property keys in the database.
db.relationshipTypes    db.relationshipTypes() :: (relationshipType :: STRING?) List all relationship types in the database.
db.resampleIndex    db.resampleIndex(index :: STRING?) :: VOID  Schedule resampling of an index (for example: CALL db.resampleIndex(":Person(name)")).
db.resampleOutdatedIndexes  db.resampleOutdatedIndexes() :: VOID    Schedule resampling of all outdated indexes.
db.schema   db.schema() :: (nodes :: LIST? OF NODE?, relationships :: LIST? OF RELATIONSHIP?)   Show the schema of the data.
dbms.changePassword dbms.changePassword(password :: STRING?) :: VOID    Change the current user's password. Deprecated by dbms.security.changePassword.
dbms.components dbms.components() :: (name :: STRING?, versions :: LIST? OF STRING?, edition :: STRING?)    List DBMS components and their versions.
dbms.functions  dbms.functions() :: (name :: STRING?, signature :: STRING?, description :: STRING?) List all user functions in the DBMS.
dbms.procedures dbms.procedures() :: (name :: STRING?, signature :: STRING?, description :: STRING?)    List all procedures in the DBMS.
dbms.queryJmx   dbms.queryJmx(query :: STRING?) :: (name :: STRING?, description :: STRING?, attributes :: MAP?)    Query JMX management data by domain and name. For instance, "org.neo4j:*"
dbms.security.changePassword    dbms.security.changePassword(password :: STRING?) :: VOID   Change the current user's password.
dbms.security.createUser    dbms.security.createUser(username :: STRING?, password :: STRING?, requirePasswordChange = true :: BOOLEAN?) :: VOID    Create a new user.
dbms.security.deleteUser    dbms.security.deleteUser(username :: STRING?) :: VOID   Delete the specified user.
dbms.security.listUsers dbms.security.listUsers() :: (username :: STRING?, flags :: LIST? OF STRING?)   List all local users.
dbms.security.showCurrentUser   dbms.security.showCurrentUser() :: (username :: STRING?, flags :: LIST? OF STRING?) Show the current user.STRING?)

4 个答案:

答案 0 :(得分:15)

使用安装程序(最常见)安装neo4j与使用zip或tar文件安装neo4j之间的差异很小。

(A)使用安装程序安装neo4j时,安装程​​序会配置neo4j服务器以查找数据库文件夹中的plugins文件夹(即,在default.graphdb文件夹下。

(B)当您从zip或tar文件安装neo4j时,neo4j服务器将在neo4j安装文件夹中查找plugins文件夹(例如,plugins文件夹应为neo4j bin文件夹的兄弟姐妹。)

听起来像(A)适用于你。

答案 1 :(得分:3)

根据我的记忆,你必须在graph.db目录中创建一个plugins目录,放入apoc jar,然后重新启动服务器。

否则,您可以在dbms.directories.plugins文件中指定neo4j.conf

答案 2 :(得分:1)

问题是你使用windows安装程序neo4j,这似乎不适用于插件。所以你必须使用正常工作的neo4j二进制文件。

这意味着您必须下载Windows安装的zip版本并按照此处的说明进行操作:

http://neo4j.com/docs/operations-manual/current/installation/windows/

编辑:

I think this is you case

如果不是

maybe this

答案 3 :(得分:0)

@cybersam和@logisima的答案是绝对正确的。但是,由于我使用的是Red Hat Linux特别是Oracle-7,因此我还必须为其添加一个附加步骤。这就是我的工作方式

  1. apoc-<version>.jar下载到/var/lib/neo4j/plugins目录
  2. chown neo4j:neo4j apoc-<version>.jar
  3. chmod 755 apoc-<version>.jar
  4. 打开/etc/neo4j/neo4j.conf处的neo4j.conf并将行#dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*替换为dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*,apoc.*并保存。
  5. 通过发出命令systemctl restart neo4j
  6. 重新启动Neo4j服务。

注意:确保您下载了正确版本的apoc jar。我正在使用neo4j version 3.5.5,而我正在使用的apoc jar版本是apoc-3.5.0.3-all.jar。 Alos确保您在dbms.directories.plugins=/var/lib/neo4j/plugins

中未注释/etc/neo4j/neo4j.conf