开启认证后无法连接树莓派上的MongoDB求助
MongoDB开启认证后无法连接的排查方案
问题背景
- 树莓派安装MongoDB后,原本本地及外部设备均可正常连接
- 开启安全认证:取消
/etc/mongod.conf中security:和authorization: enabled的注释 - 重启服务后无法连接,尝试过以下命令均失败:
mongomongo localhost -u username -p passwordmongo localhost -u "username" -p "password"- 所有命令追加
--port 27017参数
- 当前核心配置(
/etc/mongod.conf):
# network interfaces net: port: 27017 bindIp: 127.0.0.1 security: authorization: enabled
排查与解决步骤
- 确认用户的绑定数据库
MongoDB的用户是和特定数据库绑定的,如果你是在admin库创建的管理员用户,连接时必须指定认证数据库——默认会去test库找用户,自然找不到。正确连接命令:mongo localhost:27017 -u "你的用户名" -p "你的密码" --authenticationDatabase admin - 检查MongoDB服务是否正常启动
重启后先确认服务状态,执行:
如果服务没起来,去sudo systemctl status mongod/var/log/mongodb/mongod.log看日志,大概率是配置语法错了,或者/var/lib/mongodb目录权限不属于mongodb用户。 - 查看认证失败的具体日志
连接失败时,日志里会写清楚原因:比如用户不存在、密码错误、权限不够。直接查看/var/log/mongodb/mongod.log,根据日志信息针对性调整。 - 验证用户权限是否足够
你创建用户时有没有分配足够权限?比如管理员用户的正确创建命令(需在开启认证前,或临时关闭认证后执行):
权限不足也会导致连接失败。use admin db.createUser( { user: "你的用户名", pwd: "你的密码", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } ) - 临时关闭认证排查
要是以上步骤都无法解决,先把security:和authorization: enabled注释掉,重启服务,重新检查用户是否创建正确,确认没问题后再开启认证。
内容的提问来源于stack exchange,提问作者visheshevi
相关产品推荐
相关产品推荐

