2016-05-09 10 views
0

Ich verwende das Py2neo-Paket, um meine Datenbank abzufragen, die sich auf einem Servercomputer befindet.py2neo - Daten können nicht von einem Remote-Server abgerufen werden

Mein Code-Schnipsel:

from py2neo import Graph,authenticate 
import time 
from py2neo.packages.httpstream import http 
http.socket_timeout = 9999 


    def dbConnect(): 
     graph = Graph("http://192.xxx.xxx.xxx:7473/root/neo4j.graphdb") 
     print(graph) 

     #execute a cypher query 
     cypher() 

     return 

    def cypher(): 
     start_time = time.time() 
     result = graph.cypher.execute("MATCH (n) RETURN COUNT(n)") 
     print(time.time - start_time) 
     return 

    if __name__ == '__main__': 
     dbConnect() 

Daten können nicht von der Maschine mit einem Fehler zurückgegeben, die wiederum holen,

Fehlermeldung:

<Graph uri=u'http://192.168.204.146:7473/root/neo4j.graphdb/'> 
Traceback (most recent call last): 
    File "D:\Innominds\Collective[I]\Dev\Graph\Cypher_VS_Api.py", line 30, in <module> 
    dbConnect() 
    File "D:\Innominds\Collective[I]\Dev\Graph\Cypher_VS_Api.py", line 19, in dbConnect 
    cypher() 
    File "D:\Innominds\Collective[I]\Dev\Graph\Cypher_VS_Api.py", line 25, in cypher 
    result = graph.cypher.execute("MATCH (n) RETURN COUNT(n)") 
    File "C:\Python27\lib\site-packages\py2neo\core.py", line 661, in cypher 
    metadata = self.resource.metadata 
    File "C:\Python27\lib\site-packages\py2neo\core.py", line 213, in metadata 
    self.get() 
    File "C:\Python27\lib\site-packages\py2neo\core.py", line 258, in get 
    response = self.__base.get(headers=headers, redirect_limit=redirect_limit, **kwargs) 
    File "C:\Python27\lib\site-packages\py2neo\packages\httpstream\http.py", line 966, in get 
    return self.__get_or_head("GET", if_modified_since, headers, redirect_limit, **kwargs) 
    File "C:\Python27\lib\site-packages\py2neo\packages\httpstream\http.py", line 943, in __get_or_head 
    return rq.submit(redirect_limit=redirect_limit, **kwargs) 
    File "C:\Python27\lib\site-packages\py2neo\packages\httpstream\http.py", line 433, in submit 
    http, rs = submit(self.method, uri, self.body, self.headers) 
    File "C:\Python27\lib\site-packages\py2neo\packages\httpstream\http.py", line 325, in submit 
    response = send("peer closed connection") 
    File "C:\Python27\lib\site-packages\py2neo\packages\httpstream\http.py", line 318, in send 
    return http.getresponse(**getresponse_args) 
    File "C:\Python27\lib\httplib.py", line 1074, in getresponse 
    response.begin() 
    File "C:\Python27\lib\httplib.py", line 415, in begin 
    version, status, reason = self._read_status() 
    File "C:\Python27\lib\httplib.py", line 379, in _read_status 
    raise BadStatusLine(line) 
httplib.BadStatusLine: '' 

beachten, die ersten Zeile in der Fehlermeldung nur eine Druckanweisung im Code, der das Grafikobjekt auf die Konsole druckt. Und http-Import ist ein gegoogeltes Wissen.

Welche Einstellungen und Änderungen müssen vorgenommen werden, um von meinem lokalen Rechner aus auf die Graphdatenbank im Serverrechner zugreifen zu können.

+0

Welche neo4j/py2neo-Version verwenden Sie? –

Antwort

0

Zuerst sollten Sie überprüfen, ob Ihr Server erreichbar ist und ob Sie die Weboberfläche in einem Browser öffnen können.

Sie verbinden mit http mit dem Standard https Port 7473 und die URL sieht falsch aus.

http://192.xxx.xxx.xxx:7473/root/neo4j.graphdb 

Sie sollten versuchen, mit http-7474 oder https zu 7473 zu verbinden. Und die Grafik-URL sollte wie folgt aussehen: http://server:port/db/data. Versuchen Sie:

http://192.xxx.xxx.xxx:7474/db/data 
https://192.xxx.xxx.xxx:7473/db/data 

Auch Sie verwenden keine Authentifizierung. Hast du es auf dem Server deaktiviert?

Verwandte Themen