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.檢視已存在的使用者
> db.system.users.find()
3.現在來給另一個資料庫51cv配置一個讀寫權限的使用者
> use 51cv
> db.addUser("51cvrw","51cv")
..."readOnly" : false...
4.配置一個隻讀權限的使用者
> db.addUser("51cvr","51cv",true)
..."readOnly" : true...
5.删除使用者
> use dbname (admin or 51cv ,etc)
> 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
如果想删除新資料庫 <mydb>, 那麼 dropDatabase() 指令如下:
現在檢查的資料庫清單