您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php鏈接mongodb失敗的解決方法”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php鏈接mongodb失敗的解決方法”這篇文章吧。
php鏈接mongodb失敗的解決辦法:首先建立一個root role的賬號;然后建立一個userAdmin;接著建立數(shù)據(jù)庫連接賬號;最后使用MongoClient連接即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,DELL G3電腦
php鏈接mongodb失敗怎么辦?
php無法連接mongodb 3.0問題解決
root mongodb最高權(quán)限
userAdmin 自己建立的數(shù)據(jù)庫賬號管理權(quán)限
read 只讀權(quán)限
readWrite 可讀可寫
為數(shù)據(jù)庫建立了賬號,php死活連不上,使用mongo能連接上,php就是連不上
為了安全,我們常常給web應(yīng)用賦予數(shù)據(jù)庫最低的權(quán)限,保證數(shù)據(jù)庫安全。能只用到讀的絕對不加上寫
首先建立一個root role的賬號
配置mongodb no auth啟動之后
use admin db.createUser({ user:'root', pwd:'root', roles:[ {role:'root',db:'admin'} ]})
為我們新建的數(shù)據(jù)庫(test)建立一個userAdmin
use test db.createUser({ user:'001say', pwd:'001say', roles:[ {role:'userAdmin',db:'test'} ]})
建立數(shù)據(jù)庫連接賬號
use test db.auth('001say','001say') db.createUser({ user:'say001', pwd:'say001', roles:[ {role:'read',db:'test'} ]})
這樣你就獲得了一個只讀權(quán)限的say001賬號
使用MongoClient連接的時候,可能需要以下格式
$mongo = new MongoClient("mongodb://name:password@192.168.199.140:27017/test");
需要直接在連接中指定數(shù)據(jù)庫,否則MongoClient會默認去連接admin數(shù)據(jù)庫。你的權(quán)限不夠,當然會導(dǎo)致連接失敗
第二步是不可缺少的,如果你直接用root權(quán)限新建的賬號,是不可以連接到test這個數(shù)據(jù)庫的。
mongodb提供了很細膩的權(quán)限管理,最小權(quán)限到對集合的操作。
如果還是連不上,可能需要一個最新的驅(qū)動。
以上是“php鏈接mongodb失敗的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。