mongodb的鏈接和開啓安全驗證

首先是啓動mongodbphp

  a.打開cmd,cd進入mongodb的安裝目錄下的bin目錄下面,執行 mongod --dbpath D:\MongoDBdata(數據存放的目錄)web

   或者將mongodb添加到環境變量,而後執行這一句命令也是能夠的(爲了方便本人創建了一個.bat的批處理文件,將啓動mongodb的命令寫入該文件,每次想啓動直接雙擊該文件就能夠了)mongodb

  b.啓動後直接執行命令mongo就能夠進入mongodb了,或者也能夠創建一個.bat的批處理文件,寫入mongo 127.0.0.1:27017/admin這裏的admin是以什麼身份登陸的,27017是mongodb默認監聽的端口,28017是擴展端口用於web服務的數據庫

  c.使用php連接mongo: $mongo = new Mongo("mongodb://username:password@server:port");安全

  d.遠程鏈接服務器端mongo:mongo -u username -p pwd 192.168.41.215:27017/database(用戶名對應的數據庫)服務器

一.mongodb開啓安全驗證檢測工具

  mongodb默認是沒有用戶名和密碼的,咱們安裝好mongodb的客戶端,在本地鏈接本地客戶端的mongodb時,直接就"mongo"就能夠了,默認是127.0.0.1,默認監聽27017端口,不須要什麼安全驗證,那如何來開啓安全驗證呢?spa

  若是要開啓安全驗證,就必需要用--auth來開啓安全性的檢查,建立的用戶名都是存放在system.admin.Users下面的server

  1.設置mongodb的用戶名和密碼(管理員):blog

    建立管理員:

    use admin

    db.createUser({user:"root",pwd:"123456",roles:["root"]}) //添加管理員

    而後從新啓動mongodb,可是必須加上--auth選項,將.bat文件的內容修改成:mongod  --auth --dbpath D:\MongoDBdata,而後雙擊啓動,此時你再使用"mongo"命令鏈接時,什麼操做都作不了,就以下圖:

    

    上圖提示你,未受權的管理員執行命令,顯然安全驗證檢查開啓成功了,此時你應該這樣鏈接:mongo admin -u root -p 123456

    

    上圖經過剛纔設置的管理員帳號咱們鏈接成功了,至此安全驗證檢測就開啓了

    或者你也能夠這樣去驗證(前提是必須進入該用戶對應的database才行,出現1表明成功):

    

    此時當你再用mongodb的可視化工具鏈接時(本人使用的是robomongo,也可使用mongoVUE,可是基本沒有破解版的,等下我會教你們使用VUE的時候怎麼能夠無償使用):

    

    經過上圖你會發現,開啓了安全驗證檢測後,就會出現一把鑰匙,後面是admin(建立管理員的database)/root(管理員帳戶)

  2.針對某個數據庫(database)創建用戶(權限:read,readWrite,write)

    a.建立用戶(若是不選中對應的數據庫use foobar,那麼你建立的用戶認證會不成功,也沒法登錄mongo):

      

    b.認證db.auth("user","pwd")--也必須選中對應的數據庫use foobar,由於我上面選中了,因此直接就認證,出現1表示認證成功

      

    c.接下來重啓mongo,使用剛纔建立的用戶登錄,驗證權限

      

二.可視化工具鏈接mongodb(MongoVUE)

  mongodb在3.2以前默認使用的是mmapv1存儲引擎,3.2以後默認開啓的是wiredTiger存儲引擎,如何辨別本身的mongodb開啓的哪一個引擎呢?以下圖(查看mongodb啓動的數據存放目錄)

  wiredTiger引擎:

  

  mmapv1存儲引擎(下圖是我在網上找的):

  

  當咱們的mongodb開啓的是wiredTiger存儲引擎時,使用VUE鏈接mongodb它的數據是不顯示的,也就是說你鏈接成功後,查看庫裏的collections,顯示爲空,爲何呢?

  由於兩個存儲引擎生成的文件格式不兼容,mmapv1存儲引擎生成的數據文件wiredTiger存儲引擎讀取不出來,怎麼解決呢?說實話本人暫時沒找到解決的辦法,慚愧的很!!!!!!

  至於網上的解決辦法就是在mongodb啓動的時候,直接指定mongodb的存儲引擎,命令以下:

  mongod --storageEngine wiredTiger  --dbpath 數據目錄

  mongod --storageEngine mmapv1 --dbpath 數據目錄

  可是本人和同事實驗了不少次都不行,集合(collection)仍是顯示不出來,因此暫時咱們使用的可視化工具都是robomongo

  下面我教你們使用VUE的時候如何能夠免註冊,能夠一直使用,其實很簡單,可是有點麻煩,這個方法是我在網上看一位老師的教程,他教的,我在這裏借鑑一下:

  你們在官網下載好了MongoVUE以後,通常使用了14天以後就會提示要你註冊了,否則用不了,此時你能夠進入電腦的註冊表中,打開cmd,輸入regedit進入註冊表

  而後直接ctrl+f搜索"4FF78130",找到裏面的文件,14天一刪,14天一刪就是這樣了

相關文章
相關標籤/搜索