2017-02-03 89 views
2

我正在使用docker版本的neo4j(v3.1.0),并且在使用neo4j-shell连接到neo4j服务器时遇到困难。neo4j-shell无法连接到neo4j服务器

运行 docker一个实例后,我跑在容器内一个bash:

$ docker exec -it neo4j /bin/bash 

从那里我尝试运行neo4j-shell这样的:

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

但它的错误:

$ /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 

我也试过其他主机如:localhost,127.0.0.1172.17.0.6(容器IP)。由于没有工作,我想列出我的容器上的开放端口:

$ 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 

正如你可以看到有没有1337开放!我查看了配置文件,指定端口的行被注释掉了,这意味着它应该被设置为默认值(1337)。

任何人都可以帮助我连接到neo4j使用neo4j壳?

顺便说一句,neo4j服务器已启动并运行,我可以通过端口7474使用其Web访问。

回答

6

3.1中似乎默认情况下没有启用shell。

您将需要通过自己的配置文件并启用了壳:

取消注释

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

(我发现工人在码头工人相当沉重改变一个值量,但是是啊..)

或者使用新的CYPHER壳:

[email protected] ~> 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 
[email protected] ~> 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支架壳支持begincommit

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/

+0

谢谢,但主要是我感兴趣的'noe4j-shell',因为它支持'BEGIN','COMMIT '和交易。看起来cypher-shell不是。您能否告诉我配置控件neo4j-shell中的哪个条目? – Mehran

+0

不够公平,我修改了我的答案 –

+1

请注意,cypher-shell支持开始和提交,添加了一个示例 –