mongodb报错UserNotFound: Could not find user xxx@xxx

今天把数据库上传到服务器,顺便把后台代码上传服务器,测试一下数据库连接情况的时候报了一个错:

 

分析原因:

 AuthenticationFailed:身份验证失败。

但是我的数据库的用户和密码我是设置了的,你看如下,并且是root用户,且我用得用户和我本地的mongo用户密码都一样,都是:

mongodb://hmy:123456@localhost:27017/we_teach

并且服务器上面我输出的用户名也是:

 这就怪了,我有去看了下日志记录:

 怪了,服务器上面查到的本来就是这个密码和用户啊,为什么自己的服务器日志输出的结果却是没有找到hmy用户,反复查看后还是无果。最后改为无密码登录:

mongodb://localhost:27017/we_teach

数据立马出现

 我靠这是怎么回事?

接着我打开我的conf配置文件:(conf配置文件看你自己安装的安装地址,一般使用whereis mongod会输出你的mongod安装位置)

 authorization:disable

 授权禁用,会不会是禁用了授权的原因?试着改一下,变为enable看看:

 发现窗口又在转了,加载不出来

后来又在admin新建了root用户,发现还是无果……

这个问题先留着吧,暂时不用密码登录

-------------------------------------------------------------------------------------------------------------------------

不甘心,继续研究了一个多小时:

发现我去:

 这个127.0.0.0是我什么时候手贱写到的,应该是127.0.0.1才是本机地址,127.0.0.0这个鬼地址是不存在的,但是刚才为什么还让我用这个鬼地址加上无密码登录上了?

真是世界未解之谜!

最后在加个authSorce='admin',认证来源写上admin,也就是管理员的意思

let options = {
  database:'mongodb://hmy:123456@localhost:27017/we_teach?authSource=admin',
  // database:'mongodb://@localhost:27017/we_teach',
  dataConfig:{useNewUrlParser:true,useUnifiedTopology: true}
}

 

 最后得偿所愿:

唉,浪费了这么多时间,原来眼瞎是多么可怕~~

穷则独善其身,达则兼济天下……
原文地址:https://www.cnblogs.com/hmy-666/p/14533891.html