php連結mongodb失敗的解決方法:先建立一個root role的帳號;然後建立一個userAdmin;接著建立資料庫連線帳號;最後使用MongoClient連線即可。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
php連結mongodb失敗怎麼辦?
php無法連接mongodb 3.0問題解決
為資料庫建立了帳號,php死活連不上,使用mongo能連接上,php就是連不上
為了安全,我們常常給web應用程式賦予資料庫最低的權限,並保證資料庫安全。能只用到讀的絕對不加上寫
先建立一個root role的帳號
設定mongodb no auth啟動之後
use admin db.createUser({ user:'root', pwd:'root', roles:[ {role:'root',db:'admin'} ]})
為我們新建的資料庫(test)建立一個userAdmin
use test db.createUser({ user:'001say', pwd:'001say', roles:[ {role:'userAdmin',db:'test'} ]})
#建立資料庫連線帳號
use test db.auth('001say','001say') db.createUser({ user:'say001', pwd:'say001', roles:[ {role:'read',db:'test'} ]})
這樣你就獲得了一個只讀取權限的say001帳號
使用MongoClient連線的時候,可能需要以下格式
$mongo = new MongoClient("mongodb://name:password@192.168.199.140:27017/test");
需要直接在連線中指定資料庫,否則MongoClient會預設去連接admin資料庫。你的權限不夠,當然會導致連線失敗
#第二步是不可缺少的,如果你直接用root權限新建的帳號,是不可以連接到test這個資料庫的。
mongodb提供了很細膩的權限管理,最小權限到對集合的操作。
如果還是連不上,可能需要一個最新的驅動。 pecl
如果有遇到類似問題的,希望能幫到你~~
文章純手打,如有錯誤,請聯絡我修改~~謝謝
推薦學習:《 PHP影片教學》
以上是php連結mongodb失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!