如何在 arangodb 中重置 root 密码?

How to reset password for root in arangodb?

我是 root 并且 我忘了 我现在可以做什么?

我尝试重新安装 arangodb,删除所有数据库,但新安装后旧密码仍然存在

service arangodb3 stop
/usr/sbin/arangod --server.authentication false

然后

require("@arangodb/users").replace("root", "my-changed-password");
exit
service arangodb3 restart // **VERY IMPORTANT STEP!!!**
//if you don't restart the server everyone can have access to your database

使用选项 --server.authentication false 启动服务器 arangod。这将禁用身份验证,以便您无需密码即可访问数据库。如果在 arangosh 或 Web 界面中要求您提供凭据,请使用 root 作为用户名和空白密码。然后,您可以更改用户 root 的密码(在 Web 界面中:USERS > root > Change Password)。

建议将服务器绑定到 --server.endpoint tcp://127.0.0.1:8529 而不是 0.0.0.0 并关闭身份验证,这样外部的任何人都无法访问未受保护的数据库,只有您在服务器本地访问 (您也可以将其绑定到网络地址,但请确保端口未向 public 开放。

我 运行 ArangoDB3 作为 Ubuntu 上的一项服务,但我不知道如何将 --server.authentication false--server.endpoint tcp://127.0.0.1:8529 参数传递给arangod 过程。

我通过更改 /etc/arangodb3/arangod.conf.

中的相同值使其工作

第 1 步:- 停止 运行 arangodb 实例

     sudo systemctl stop arangodb3

第 2 步:- 在禁用身份验证的情况下启动 arangodb

     sudo /usr/sbin/arangod --server.authentication false

第 3 步:- 在新终端中启动 arango shell

     arangosh

第 4 步:- 在 arango 中更改 root 密码 shell

     require("@arangodb/users").replace("root", "new-password");

第 5 步:- 关闭 arango shell

     exit

第 6 步:- 在前一个终端中停止 arangodb 未经身份验证的服务

     CTRL + c

第 7 步:- 重启 arangodb 服务

     sudo systemctl start arangodb3