首頁  >  文章  >  後端開發  >  php連結mongodb失敗怎麼辦

php連結mongodb失敗怎麼辦

藏色散人
藏色散人原創
2021-06-18 09:58:481898瀏覽

php連結mongodb失敗的解決方法:先建立一個root role的帳號;然後建立一個userAdmin;接著建立資料庫連線帳號;最後使用MongoClient連線即可。

php連結mongodb失敗怎麼辦

本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦

php連結mongodb失敗怎麼辦?

php無法連接mongodb 3.0問題解決 

  • 幾個常用的role

  • root mongodb最高權限
  • #userAdmin自己建立的資料庫帳號管理權限
  • read 唯讀權限
  • readWrite 可讀可寫
  • 遭遇的梗詞

為資料庫建立了帳號,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn