node---解決MongoError: Authentication failed.----mongoose連結admin資料庫成功,但是連結新建的資料庫不成功!
阿新 • • 發佈:2021-06-21
先說解決辦法:
mongoose.connect(name, {
authSource: 'admin', // 許可權認證(新增這個屬性!!!!!)
user: user,
pass: password,
poolSize: 10, // 資料庫連線池大小
useNewUrlParser: true, // 雖然沒有報錯但是看起來還是不爽,警告內容就是新版connect裡邊需要這兩個引數
useUnifiedTopology: true, // 當前伺服器發現和監視引擎已棄用
})
思路:
1.先判斷是否建立了賬戶
因為預設的mongo是沒有賬戶的
進入mongo控制檯 >mongo 檢視資料庫 show dbs 新建賬戶 > db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) 列印: Successfully added user: { "user" : "root", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } 驗證是否建立成功: > use admin switched to db admin > db.auth("root","123456") 1 查詢出一條,說明建立成功 ---------------------------------------
2.驗證是否新建的資料庫成功(新建的資料庫名例如叫xcx)
>use xcx
switched to db xcx
這裡有個坑
如果沒有向xcx裡插入資料,這裡是查詢不到的
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
插入資料
> db.site.insert({"name":"測試"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
xcx 0.000GB