溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php鏈接mongodb失敗的解決方法

發(fā)布時間:2021-06-18 10:10:21 來源:億速云 閱讀:292 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“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問題解決

  • 幾個常用的role

  • 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)致連接失敗

  • 后續(xù)

第二步是不可缺少的,如果你直接用root權(quán)限新建的賬號,是不可以連接到test這個數(shù)據(jù)庫的。
mongodb提供了很細膩的權(quán)限管理,最小權(quán)限到對集合的操作。
如果還是連不上,可能需要一個最新的驅(qū)動。

以上是“php鏈接mongodb失敗的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(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)容。

AI