Py2neo连接Neo4j报错:AuthError: http://localhost:7474/db/data/
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Py2neo连接Neo4j报错:AuthError: http://localhost:7474/db/data/相关的知识,希望对你有一定的参考价值。
问题描述
AuthError: http://localhost:7474/db/data/
:如果是这个问题,考虑您的密码忘记,重置下密码,看看能否解决!
昨天,我尝试摸索着安装Neo4j,成功之后,想使用Python连接图数据库进行增删改查,但是连接部分就直接卡死了,痛心一晚上,还好睡前扫黑风暴更新了,把它暂时遗忘。
【2021/8/28-最新教程】Windows 安装配置Neo4j图数据库
pip install py2neo
直接安装就行,不需要考虑版本问题,当然如果报错,最好降低版本更稳定:
pip install py2neo==4.11
测试代码:
import py2neo
# 连接数据库
graph = py2neo.Graph('http://localhost:7474/browser/', auth=('zs', 'zs'))
# 查询语句
query = 'match (m: Movie) return m'
# 执行,转化为data_frame()对象,获取前5行
graph.run(query).to_data_frame().head()
出现报错:
---------------------------------------------------------------------------
AuthError Traceback (most recent call last)
~\\AppData\\Local\\Temp/ipykernel_16144/1798571468.py in <module>
2 match (m: Movie) return m
3 '''
----> 4 graph.run(query).to_data_frame().head()
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\database.py in run(self, cypher, parameters, **kwparameters)
496 :return:
497 """
--> 498 return self.begin(autocommit=True).run(cypher, parameters, **kwparameters)
499
500 def separate(self, subgraph):
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\database.py in run(self, cypher, parameters, **kwparameters)
856 finally:
857 if not self.transaction:
--> 858 self.finish()
859
860 def process(self):
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\database.py in finish(self)
865
866 def finish(self):
--> 867 self.process()
868 if self.transaction:
869 self.transaction.close()
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\database.py in process(self)
862 """
863 self._assert_unfinished()
--> 864 self.session.sync()
865
866 def finish(self):
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\internal\\http.py in sync(self)
311 count = 0
312 try:
--> 313 response = self.post(ref, {"statements": self._statements}, expected=(OK, CREATED))
314 if response.status == 201:
315 location_path = urlsplit(response.headers["Location"]).path
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\internal\\http.py in post(self, ref, json, expected)
157 rs = self.request("POST", self.path + ref, headers=self.headers, body=json)
158 if rs.status not in expected:
--> 159 self.raise_error(rs.status, rs.data)
160 return rs
161
D:\\Anaconda3\\envs\\KG\\lib\\site-packages\\py2neo\\internal\\http.py in raise_error(self, status_code, data)
174 def raise_error(self, status_code, data):
175 if status_code == UNAUTHORIZED:
--> 176 raise AuthError(self.uri)
177 if status_code == FORBIDDEN:
178 raise Forbidden(self.uri)
AuthError: http://localhost:7474/db/data/
AuthError: http://localhost:7474/db/data/
:在百度和Stack Overflow都搜不到这个问题o(╥﹏╥)o
小白真的不知道怎么解决!
解决方案
今天上午,我感觉是python和neo4j版本的问题,在官网上看了,感觉也没啥问题,咨询朋友后,他的python是3.7和neo4j是3.5,我就想着重新下载试试。
卸载重装!
之后成功了,我又把用户名密码改为: zs
,无意中发现下面的信息。
Username:neo4j
点解 Disconnect
重新登录,发现 zs zs
,登录失败!
Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure.
由于身份验证失败,客户端未经授权。
大概就是账号密码错误,验证失败!
想了想,试了试…
之后尝试 neo4j zs
:发现成功登录!
欧耶!\\(^o^)/
数据读出来了!
还是不要随便改密码吧!
踩坑原因可能是没人指导,也可能是我没有读懂官方文档,也可能是入门没学好或者是没有完整的教程!
这可能就是自学的难处吧!
2021/8/29/12:45更新:我太傻了,原来改密码时输入两边密码是二次确认密码,用户名默认就是neo4j,username是不需要改的,o(╥﹏╥)o
小白马上开启Neo4j之旅!
加油!
感谢!
努力!
以上是关于Py2neo连接Neo4j报错:AuthError: http://localhost:7474/db/data/的主要内容,如果未能解决你的问题,请参考以下文章