今天把数据库上传到服务器,顺便把后台代码上传服务器,测试一下数据库连接情况的时候报了一个错:
分析原因:
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} }
最后得偿所愿:
唉,浪费了这么多时间,原来眼瞎是多么可怕~~