今天把數據庫上傳到服務器,順便把后台代碼上傳服務器,測試一下數據庫連接情況的時候報了一個錯:
分析原因:
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} }
最后得償所願:
唉,浪費了這么多時間,原來眼瞎是多么可怕~~