【问题标题】:Cant change neo4j password无法更改neo4j密码
【发布时间】:2018-12-21 21:08:18
【问题描述】:

我正在尝试通过以下命令行操作更改我的 neo4j 密码,遵循 Brent Barbata 在 this link 上的回答

curl -H "Content-Type: application/json" -XPOST -d '{"password":"new_password"}' -u neo4j:neo4j http://localhost:7474/user/neo4j/password

但我收到以下错误

{
  "errors" : [ {
    "code" : "Neo.ClientError.Security.Unauthorized",
    "message" : "Invalid username or password."
  } ]

我按照this question的想法尝试了这种替代方式

curl -H "Content-Type: application/json"\ -H "Authorization: Basic `echo -n 'USERNAME:OLDPASSWORD | base64`"\ -X POST -d '{"password":"NEWPASSWORD"}'\ -I http://localhost:7474/user/neo4j/password

并得到以下错误

curl: (6) Could not resolve host: Authorization
curl: (6) Could not resolve host: POST
{
  "errors" : [ {
    "code" : "Neo.ClientError.Security.Unauthorized",
    "message" : "No authentication header supplied."
  } ]

这些方法有什么问题,更改密码的方法是什么? 我不想在浏览器上使用:server change-password。我在 Ubuntu 16.04 上运行 neo4j 3.3.5

【问题讨论】:

    标签: curl command-line neo4j ubuntu-16.04 change-password


    【解决方案1】:

    如果是初始设置密码(即在服务器第一次启动之前):

    bin/neo4j-admin set-initial-password MyNewPassWord
    

    如果要更改密码,只需使用您的登录名/密码连接到 cypher-shell,然后执行以下查询:

    CALL dbms.security.changePassword('MyNewPassWord')
    

    【讨论】:

      【解决方案2】:

      我在自己的 Neo4j 实例上尝试了您的示例,并遇到了同样的错误。我发现这个与this 源代码略有不同的命令,这对我有用。不会返回任何错误消息,它会立即更改您的密码。

      curl -H "Content-Type: application/json" -H "Authorization: Basic `echo -n 'USERNAME:OLDPASSWORD' | base64`" -X POST -d '{"password":"NEWPASSWORD"}' -I http://localhost:7474/user/neo4j/password
      

      它看起来与您问题中的第二个 curl 命令几乎完全相同 - 我的猜测是,由于行继续符和整个命令的一般混乱,当您运行该命令时,可能是命令选项之一/flags 前后都没有空格,这让解释器感到困惑。这可能不言而喻,但请确保在运行命令之前将 USERNAME、OLDPASSWORD 和 NEWPASSWORD 占位符替换为实际值。

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 2018-08-26
        • 2013-09-06
        • 2013-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多