由于疫情期间需要在家办公, 公司的数据也好, 还是自己的测试数据, 之前都是放在个人\公司电脑的本地, 现在才发现有多么蓝瘦, 测试数据都没了, 还得慢慢重新弄... 然后想到干脆用台稍稍空闲点的服务器做个mongodb, 开启公网访问, 同时为了保证一定程度的安全, 把auth模式启用, 结果遇到了个坑...
mongodb开启认证模式很简单, 使用mongod启动的时候带上--auth
参数就好了
设置账号也很简单
1 2 3 4 5 |
mongod # 首先使用普通模式启动mongodb mongo # 进入mongodb use admin # 进入账号管理 db.createUser({user:"admin",pwd:"admin",roles:["root"]}) # 创建全局账号 |
至此, root权限账号就已经创建完毕了
然后, 准备登录的时候, 发现了个蛋疼的问题
1 2 3 |
mongod --auth # 使用认证模式启动 db.auth("admin", "admin") # 登录 |
结果居然提示Error: Authentication failed.
捣鼓了半天, 才知道原来mongodb的认证都是针对于数据库的, 所以实际操作应该是
1 2 3 4 |
mongod --auth # 使用认证模式启动 use admin db.auth("admin", "admin") # 登录 |
python连接则使用
1 2 |
MongoClient(host='host', port=27017, username="admin", password="admin") |
感谢
站主666