I wrote the following python code to neo4j using py2neo
from py2neo import Graph from py2neo import neo4j,Node,Relationship sgraph = Graph() alice = Node("person",name="alice") bob = Node("person",name="bob") alice_knows_bob = Relationship(alice,"KNOWS",bob) sgraph.create(alice_knows_bob)
but i got the following error
Traceback (most recent call last): File "C:Python34libsite-packagespy2neocore.py", line 258, in get response = self.__base.get(headers=headers, redirect_limit=redirect_limit, * *kwargs) File "C:Python34libsite-packagespy2neopackageshttpstreamhttp.py",line 966, in get return self.__get_or_head("GET", if_modified_since, headers, redirect_limit, **kwargs) File "C:Python34libsite-packagespy2neopackageshttpstreamhttp.py",line 943, in __get_or_head return rq.submit(redirect_limit=redirect_limit, **kwargs) File "C:Python34libsite-packagespy2neopackageshttpstreamhttp.py",line 452, in submit return Response.wrap(http, uri, self, rs, **response_kwargs) File "C:Python34libsite-packagespy2neopackageshttpstreamhttp.py",line 489, in wrap raise inst py2neo.packages.httpstream.http.ClientError: 401 Unauthorized During handling of the above exception, another exception occurr ed: Traceback (most recent call last): File "neo.py", line 7, in <module> sgraph.create(alice_knows_bob) File "C:Python34libsite-packagespy2neocore.py", line 704, in create statement = CreateStatement(self) File "C:Python34libsite-packagespy2neocyphercreate.py", 44,in__init__ self.supports_node_labels = self.graph.supports_node_labels File "C:Python34libsite-packagespy2neocore.py", line 1078, in supports_node_labels return self.neo4j_version >= (2, 0) File "C:Python34libsite-packagespy2neocore.py", line 956, in neo4j_version return version_tuple(self.resource.metadata["neo4j_version"]) File "C:Python34libsite-packagespy2neocore.py", line 213, in metadata self.get() File "C:Python34libsite-packagespy2neocore.py", line 261, in get raise Unauthorized(self.uri.string) py2neo.error.Unauthorized: http://localhost:7474/db/data/
can anyone please help me.This is the first time i writing python code to connect to neo4j.
Advertisement
Answer
If you’re using Neo4j 2.2, authentication for database servers is enabled by default. You need to authenticate before performing further operations. Read documentation.
from py2neo import authenticate, Graph # set up authentication parameters authenticate("localhost:7474", "user", "pass") # connect to authenticated graph database sgraph = Graph("http://localhost:7474/db/data/") # create alice and bob ...
From the same documentation,
Py2neo provides a command line tool to help with changing user passwords as well as checking whether a password change is required.
For a new installation, use:
$ neoauth neo4j neo4j my-p4ssword Password change succeeded
After a password has been set, the tool can also be used to validate credentials
$ neoauth neo4j my-p4ssword Password change not required