這篇文章主要為大家展示了“php鏈接MongoDB失敗的解決方法”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php鏈接mongodb失敗的解決方法”這篇文章吧。
目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、宿松網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
php鏈接mongodb失敗的解決辦法:首先建立一個(gè)root role的賬號(hào);然后建立一個(gè)userAdmin;接著建立數(shù)據(jù)庫(kù)連接賬號(hào);最后使用MongoClient連接即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,DELL G3電腦
php鏈接mongodb失敗怎么辦?
php無(wú)法連接mongodb 3.0問(wèn)題解決
root mongodb最高權(quán)限
userAdmin 自己建立的數(shù)據(jù)庫(kù)賬號(hào)管理權(quán)限
read 只讀權(quán)限
readWrite 可讀可寫
為數(shù)據(jù)庫(kù)建立了賬號(hào),php死活連不上,使用mongo能連接上,php就是連不上
為了安全,我們常常給web應(yīng)用賦予數(shù)據(jù)庫(kù)最低的權(quán)限,保證數(shù)據(jù)庫(kù)安全。能只用到讀的絕對(duì)不加上寫
首先建立一個(gè)root role的賬號(hào)
配置mongodb no auth啟動(dòng)之后
use admin db.createUser({ user:'root', pwd:'root', roles:[ {role:'root',db:'admin'} ]})
為我們新建的數(shù)據(jù)庫(kù)(test)建立一個(gè)userAdmin
use test db.createUser({ user:'001say', pwd:'001say', roles:[ {role:'userAdmin',db:'test'} ]})
建立數(shù)據(jù)庫(kù)連接賬號(hào)
use test db.auth('001say','001say') db.createUser({ user:'say001', pwd:'say001', roles:[ {role:'read',db:'test'} ]})
這樣你就獲得了一個(gè)只讀權(quán)限的say001賬號(hào)
使用MongoClient連接的時(shí)候,可能需要以下格式
$mongo = new MongoClient("mongodb://name:password@192.168.199.140:27017/test");
需要直接在連接中指定數(shù)據(jù)庫(kù),否則MongoClient會(huì)默認(rèn)去連接admin數(shù)據(jù)庫(kù)。你的權(quán)限不夠,當(dāng)然會(huì)導(dǎo)致連接失敗
第二步是不可缺少的,如果你直接用root權(quán)限新建的賬號(hào),是不可以連接到test這個(gè)數(shù)據(jù)庫(kù)的。
mongodb提供了很細(xì)膩的權(quán)限管理,最小權(quán)限到對(duì)集合的操作。
如果還是連不上,可能需要一個(gè)最新的驅(qū)動(dòng)。
以上是“php鏈接mongodb失敗的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!