天天看點

mongodb3.2.6遠端連接配接認證失敗

robomongo貌似不支援3.0版本以上了,反正總是提示認證失敗

最近用到mongodb,在阿裡雲伺服器上面直接

wget

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.6.tgz   下載下傳安裝包,安裝的linux-64bit,version:3.2.6

安裝完成之後,根據網上設定了使用者和密碼

dbpath=/usr/mongodb/data

logpath=/usr/mongodb/logs/mongodb.log

bind_ip=0.0.0.0

logappend=true

port=27017

fork=true

auth=false //設定使用者之前,先不要設定認證,否則啟動後,設定使用者需要各種權限,建議使用者角色配置設定好後再改成ture。重新開機後這樣就可以正常使用權限

開始設定好使用者直接重新開機,本地登入認證都ok,遠端認證總是失敗,網上找了各種資料,都沒有進行說明,找了很久,終于發現一篇文章告訴mongodb3.2認證資訊需要修改才能進行連接配接

修改指令如下,進入shell:

> use admin

switched to dbadmin

>  var schema = db.system.version.findOne({"_id" : "authSchema"})

>schema.currentVersion = 3

3

>db.system.version.save(schema)

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

在修改完成之後再建立使用者。下面附帶建立資料庫使用者的shell:

1 建立一個root使用者:

use admin

db.createUser(

    {

      user: "root",

      pwd: "123456",

      roles: [ "root" ]

    }

)

2 建立admin使用者

  {

    user: "admin",

    pwd: "123456",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

3 建立具體資料庫的使用者

use yy

    user: "jiake",

然後使用插入語句:

db.user.insert({name:'tompig'});

最後都要認證一下

db.auth("user", "pwd")

傳回1代表成功,0代表失敗。

然後把mongodb.conf檔案中的auth=true,再重新啟動mongodb。就可以進行遠端連接配接了

mongodb參考資料:

http://www.yiibai.com/mongodb/mongodb_drop_database.html

mongodb一些基本操作:

說明:增加使用者是針對資料庫進行操作

1.進入到資料庫 use dbname

2.針對目前資料庫添加使用者 權限是針對目前資料

1.添加并驗證使用者

> db.addUser("zjx","tsjianxin") #添加使用者

> db.auth("zjx","tsjianxin")

以上為2.6以前版本添加使用者,2.6以後版本增加使用者并賦予權限:

<code>1</code>

<code>use dbname</code>

<code>2</code>

<code>db.createUser({user:"user",pwd:"pass",roles:[{role:"readWrite",db:"dbname"}]})</code>

2.檢視已存在的使用者

&gt; db.system.users.find()

3.現在來給另一個資料庫51cv配置一個讀寫權限的使用者

&gt; use 51cv

&gt; db.addUser("51cvrw","51cv")

 ..."readOnly" : false...

4.配置一個隻讀權限的使用者

&gt; db.addUser("51cvr","51cv",true)

  ..."readOnly" : true...

5.删除使用者

&gt; use dbname (admin or 51cv ,etc)

&gt; db.system.users.remove({user:"haha"})

6.使用者登入資料庫測試

mongo admin -u zjx -p tsjianxin

/usr/local/mongodb/bin/mongo admin -u 使用者名 -p  密碼 --port 端口号

以上為2.6以前版本添加使用者,2.6以後版本:

<code>./bin/mongo  -u user -p password 127.0.0.1:27017/dbname</code>

MongoDB db.dropDatabase() 指令是用來删除一個現有的資料庫。

dropDatabase() 指令的基本文法如下:

這将删除標明的資料庫。如果還沒有選擇任何資料庫,然後它會删除預設的 ' test' 資料庫

首先,檢查清單資料庫通過使用指令 showdbs

如果想删除新資料庫 &lt;mydb&gt;, 那麼 dropDatabase() 指令如下:

現在檢查的資料庫清單

繼續閱讀