mongodb的連接和開啟安全驗證


首先是啟動mongodb

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

   或者將mongodb添加到環境變量,然后執行這一句命令也是可以的(為了方便本人建立了一個.bat的批處理文件,將啟動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端口,不需要什么安全驗證,那如何來開啟安全驗證呢?

  如果要開啟安全驗證,就必須要用--auth來開啟安全性的檢查,創建的用戶名都是存放在system.admin.Users下面的

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

    創建管理員:

    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天一刪就是這樣了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM