1. 程式人生 > 其它 >node---解決MongoError: Authentication failed.----mongoose連結admin資料庫成功,但是連結新建的資料庫不成功!

node---解決MongoError: Authentication failed.----mongoose連結admin資料庫成功,但是連結新建的資料庫不成功!

先說解決辦法:

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