mongodb开启登录认证后遇到Authentication failed.

由于疫情期间需要在家办公, 公司的数据也好, 还是自己的测试数据, 之前都是放在个人\公司电脑的本地, 现在才发现有多么蓝瘦, 测试数据都没了, 还得慢慢重新弄… 然后想到干脆用台稍稍空闲点的服务器做个mongodb, 开启公网访问, 同时为了保证一定程度的安全, 把auth模式启用, 结果遇到了个坑…

mongodb开启认证模式很简单, 使用mongod启动的时候带上--auth参数就好了

设置账号也很简单

     mongod # 首先使用普通模式启动mongodb
     mongo # 进入mongodb
     use admin # 进入账号管理
     db.createUser({user:"admin",pwd:"admin",roles:["root"]}) # 创建全局账号

至此, root权限账号就已经创建完毕了

然后, 准备登录的时候, 发现了个蛋疼的问题

     mongod --auth # 使用认证模式启动
     db.auth("admin", "admin") # 登录

结果居然提示Error: Authentication failed.

捣鼓了半天, 才知道原来mongodb的认证都是针对于数据库的, 所以实际操作应该是

     mongod --auth # 使用认证模式启动
     use admin
     db.auth("admin", "admin") # 登录

python连接则使用

     MongoClient(host='host', port=27017, username="admin", password="admin")

发表评论

电子邮件地址不会被公开。