neo4j-shell can not connect to neo4j Server

匿名 (未验证) 提交于 2019-12-03 00:56:02

问题:

I'm using docker version of neo4j (v3.1.0) and I'm having difficulties connecting to neo4j server using neo4j-shell.

After running an instance of neo4r:3.1.0 docker, I run a bash inside the container:

$ docker exec -it neo4j /bin/bash 

And from there I try to run the neo4j-shell like this:

/var/lib/neo4j/bin/neo4j-shell 

But it errors:

$ /var/lib/neo4j/bin/neo4j-shell  ERROR (-v for expanded information):     Connection refused   -host      Domain name or IP of host to connect to (default: localhost)  -port      Port of host to connect to (default: 1337)  -name      RMI name, i.e. rmi://<host>:<port>/<name> (default: shell)  -pid       Process ID to connect to  -c         Command line to execute. After executing it the shell exits  -file      File containing commands to execute, or '-' to read from stdin. After executing it the shell exits  -readonly  Connect in readonly mode (only for connecting with -path)  -path      Points to a neo4j db path so that a local server can be started there  -config    Points to a config file when starting a local server  Example arguments for remote:     -port 1337     -host 192.168.1.234 -port 1337 -name shell     -host localhost -readonly     ...or no arguments for default values Example arguments for local:     -path /path/to/db     -path /path/to/db -config /path/to/neo4j.config     -path /path/to/db -readonly 

I also tried other hosts like: localhost, 127.0.0.1 and 172.17.0.6 (the container IP). Since it didn't work I tried to list open ports on my container:

$ netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State        tcp        0      0 :::7687                 :::*                    LISTEN       tcp        0      0 :::7473                 :::*                    LISTEN       tcp        0      0 :::7474                 :::*                    LISTEN       Active UNIX domain sockets (only servers) Proto RefCnt Flags       Type       State         I-Node Path 

As you can see there's no 1337 open! I've looked into the config file and the line for specifying port is commented out which means it should be set to its default value (1337).

Can anyone help me connect to neo4j using neo4j-shell?

BTW, the neo4j server is up and running and I can use its web access through port :7474.

回答1:

In 3.1 it seems the shell is not enabled by default.

You will need to pass your own configuration file with the shell enabled :

Uncomment

# Enable a remote shell server which Neo4j Shell clients can log in to. dbms.shell.enabled=true 

(I find the amount of worker for changing one value in docker quite heavy but yeah..)

Or use the new cypher-shell :

ikwattro@graphaware-team ~> docker ps -a | grep 'neo4j' 34b3c6718504        neo4j:3.1.0               "/docker-entrypoint.s"   2 minutes ago       Up 2 minutes                 7473-7474/tcp, 7687/tcp   compassionate_easley 2395bd0b1fe9        neo4j:3.1.0               "/docker-entrypoint.s"   5 minutes ago       Exited (143) 3 minutes ago                             cranky_goldstine 949feacbc0f9        neo4j:3.1.0               "/docker-entrypoint.s"   5 minutes ago       Exited (130) 5 minutes ago                             modest_boyd c38572b078de        neo4j:3.0.6-enterprise    "/docker-entrypoint.s"   6 weeks ago         Exited (0) 6 weeks ago                                 fastfishpim_neo4j_1 ikwattro@graphaware-team ~> docker exec --interactive --tty compassionate_easley bin/cypher-shell username: neo4j password: ***** Connected to Neo4j 3.1.0 at bolt://localhost:7687 as user neo4j. Type :help for a list of available commands or :exit to exit the shell. Note that Cypher queries must end with a semicolon. neo4j> 

NB: Cypher-shell supports begin and commit :

neo4j> :begin neo4j# create (n:Node); Added 1 nodes, Added 1 labels neo4j# :commit; neo4j> 

-

neo4j> :begin neo4j# create (n:Person {name:"John"}); Added 1 nodes, Set 1 properties, Added 1 labels neo4j# :rollback neo4j> :commit There is no open transaction to commit neo4j> 

http://neo4j.com/docs/operations-manual/current/tools/cypher-shell/



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