APOC is only partially installing its extension in neo4j (one procedure)

会有一股神秘感。 提交于 2019-11-26 17:11:51

问题


I downloaded apoc-3.1.0.3-all.jar and placed it in the plugins for my windows7 Neo4J 3.1.1 system.

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)

Killed the Neo4J process on the computer, and then restated the server.

I am only seeing one apoc procedure listed, others give an error about missing procedure. ThereNo sign of errors in the neo4j log. I tried unblocking the jar, and restarting the server. No luck.

I have no problem with doing

Call db.schema()

But something as simple as:

CALL apoc.help("help")

will result in a

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.

What am I doing wrong, I assume it must be me!)

$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?)

回答1:


There is a poorly documented difference between installing neo4j using an installer (which is most common) versus from a zip or tar file.

(A) When you install neo4j using an installer, the installer configures the neo4j server to look for the plugins folder in the database folder (i.e., under the default.graphdb folder).

(B) When you install neo4j from a zip or tar file, the neo4j server will look for the plugins folder in the neo4j installation folder (for example, the plugins folder should be a sibling of the neo4j bin folder).

It sounds like (A) applies to you.




回答2:


From what I remember, you have to create a plugins directory into your graph.db directory, put the apoc jar, and restart you server.

Otherwise you can specify the dbms.directories.plugins in neo4j.conf file.




回答3:


The problem is that you used windows installer for neo4j, which seems doesnt work with plugins. so you must use the neo4j binaries which are working okay.

What that means is that you have to download the zip version for the windows installation and follow the instructions here:

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

edit:

I think this is you case

if not

maybe this




回答4:


The answers by @cybersam and @logisima are absolutely correct. However, since I'm using a Red Hat Linux specifically Oracle-7, I had to add an additional step to it as well. This is how I got it working

  1. Download the apoc-<version>.jar into the /var/lib/neo4j/plugins directory
  2. chown neo4j:neo4j apoc-<version>.jar
  3. chmod 755 apoc-<version>.jar
  4. Open the neo4j.conf at /etc/neo4j/neo4j.conf and replace the line #dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.* with dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*,apoc.* and save it.
  5. Restart the Neo4j service by issuing the command systemctl restart neo4j

Note: Make sure that you have the right version of apoc jar downloaded. I'm using the neo4j version 3.5.5 and the apoc jar version I'm using is apoc-3.5.0.3-all.jar. Alos make sure that you have the dbms.directories.plugins=/var/lib/neo4j/plugins uncommented in the /etc/neo4j/neo4j.conf



来源:https://stackoverflow.com/questions/42286508/apoc-is-only-partially-installing-its-extension-in-neo4j-one-procedure

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!