2017-02-03 16 views
2

Я использую докерную версию neo4j (v3.1.0), и у меня возникают трудности с подключением к серверу neo4j с использованием neo4j-shell.neo4j-shell не могу подключиться к neo4j Server

После запуска экземпляра docker, я бегу Баш внутри контейнера:

$ 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.1 и 172.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-shell?

BTW, сервер neo4j запущен и я могу использовать его доступ к сети через порт: 7474.

ответ

6

В 3.1 кажется, что оболочка не включена по умолчанию.

Вам нужно будет передать свой собственный файл конфигурации с оболочкой Enabled:

раскомментировать

# 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-оболочка поддерживает begin и 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/

+0

Спасибо, но в основном я заинтересован в 'noe4j-shell', поскольку он поддерживает' BEGIN', 'COMMIT 'и транзакций. Кажется, cypher-shell не делает. Не могли бы вы рассказать мне, какая запись в настройках конфигурации neo4j-shell? – Mehran

+0

Достаточно честный, я поменял свой ответ на строку –

+1

Обратите внимание, что cypher-shell поддерживает начало и фиксацию, добавленный пример –