如果在 MongoDB 中开启了身份验证(auth)认证,并且认证失败,可以尝试以下解决方案:
1. 检查用户名和密码是否正确:确保输入的用户名和密码与在 MongoDB 中创建的用户凭据匹配。
2. 检查 MongoDB 的配置文件:打开 MongoDB 的配置文件(通常位于/etc/mongod.conf或/etc/mongodb.conf),确保以下配置项设置正确:
- `security.authorization`:设置为`enabled`。
- `security.authentication`:设置为`enabled`或者`on`。
3. 重启 MongoDB 服务:在修改配置文件后,重启 MongoDB 服务使更改生效。可以使用以下命令重启 MongoDB 服务:
```
sudo systemctl restart mongod
```
4. 检查 MongoDB 日志:查看 MongoDB 的日志文件,通常位于/var/log/mongodb/mongod.log,以获取更多有关认证失败的详细错误信息。
5. 更改 MongoDB 用户的角色:如果您使用的用户角色没有足够的权限访问数据库,可以尝试将用户角色更改为更高级别的角色,例如`dbOwner`或`userAdminAnyDatabase`。
6. 重置管理员用户的密码:如果管理员用户的密码遗忘或丢失,可以通过重置管理员用户的密码来解决认证失败的问题。可以通过在不使用身份验证的模式下启动 MongoDB,并运行以下命令来重置密码:
```
use admin
db.updateUser("admin", {pwd: "
```
如果上述解决方案无法解决问题,可能需要进一步检查 MongoDB 的配置和日志以确定问题的根本原因,并采取相应的措施解决。