MongoDB(一)環境搭建與初始配置

來源:互聯網
上載者:User

標籤:width   自己   x86_64   target   netstat   body   lda   log   輸入   

前言

  最近的項目中需要用到MongoDB,所這段時間需要學習知道怎麼去使用這個資料庫。

  這裡我先簡單的介紹一下什麼是MongoDB,後面還會詳細的介紹:

    MongoDB 是一個面向文檔的通用型資料庫,擁有 MySQL 等關係型資料庫常用功能。除了能夠建立、讀取、更新和刪除資料之外,也還提供了一些拓展的功能,

    如索引、彙總、特殊的集合類型(如時間有限的集合)、分區和叢集,是一個便於使用、便於拓展的資料庫。也正因為它的這些特性,也是前端童鞋使用得比較

    多的一種資料庫。  

一、在CentOS中安裝MongoDB1.1、簡介

  MongoDB 有兩個版本類型:開源社區版(Community Edition)和企業版(Enterprise),功能上兩者並沒有什麼區別,企業版主要是提供了更多的管理服務,

  有更進階的安全性,如LDAP 身分識別驗證、Red Hat 標識管理認證。這裡主要討論開源社區版。官方提供了mongodb-org軟體包,其中包含了 MongoDB 幾乎所有

  所需功能,使用系統內建的yum軟體包管理器可以非常方便地進行安裝。

1.2、配置資產庫

  為了確保系統能直接從指定地址擷取軟體包,建立/etc/yum.repos.d/mongodb-org-3.4.repo檔案,填入如下內容配置 MongoDB 資產庫:

[mongodb-org-3.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

  執行安裝命令

sudo yum install -y mongodb-org
二、啟動2.1、簡介

  MongoDB 安裝完後,預設會產生很多命令,如 mongo、mongod、mongodump、mongooplog等。

  其中比較常用的有 mongod(用於啟動 MongoDB 伺服器)、mongo(提供強大的類似 javascript 環境的 mongo shell 互動式功能)。

  如果簡單地通過執行 mongod 命令來啟動 MongoDB 伺服器,則無法使它在後台運行,控制台關了服務也自動停止了,也無法快速啟動指定配置的服務,更不能做

  到開機自啟動。Centos 提供了 service 命令來幫我們快速地啟動一些服務,不過它其實就是跑一個指定的 shell 指令碼。當我們輸入 service 命令時,linux 會去 

  /etc/rc.d/init.d 下去找這個指令碼運行,init.d 下面放了很多這種指令碼(如常見的 httpd)。而當我們需要設定開機自啟動時也可以通過 chkconfig 命令來設定

  這些系統服務開機時啟動。

2.2、啟動命令及配置開機啟動

  1)啟動命令

  MongoDB 安裝完後預設會在 /etc/rc.d/init.d 下產生啟動指令碼 mongod,所以我們可以通過下面命令啟動 MongoDB 伺服器:

sudo service mongod start

  2)如需要設定開機啟動可以執行下面指令碼

sudo chkconfig mongod on

  3)查看是否啟動

  方法一:

    使用命令:netstat -lanp |grep ""27017" 

    

  方式二:

    訪問 /var/log/mongodb/mongod.log 記錄檔,如果看到 [initandlisten] waiting for connections on port <port> 的日誌則說明啟動成功。 

    

三、MongoDB設定3.1、MongoDB設定檔  

  每個 mongod 伺服器處理序都需要有自己的資料存放區路徑,預設是 /var/lib/mongo。如果需要啟動多個伺服器處理序,則可以指定不同的路徑來啟動。

  啟動的預設設定檔是 /etc/mongod.conf。我們可通過這個設定檔實現所需配置:官方設定檔詳解

# mongod.conf# for documentation of all options, see:#   http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.systemLog:  destination: file  logAppend: true  path: /var/log/mongodb/mongod.log# Where and how to store data.storage:  dbPath: /var/lib/mongo  journal:    enabled: true#  engine:#  mmapv1:#  wiredTiger:# how the process runsprocessManagement:  fork: true  # fork and run in background  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile# network interfacesnet:  port: 27017 bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces. #operationProfiling:#replication:#sharding:## Enterprise-Only Options#auditLog:#snmp:

  注意:

    有一個需要注意的配置是 net 下的 bingIp,如果設定 bindIp: 127.0.0.1 則外網機器無法直接連接此伺服器處理序。

四、認證授權(MongoDB建立使用者個庫)4.1、簡介

  MongoDB 伺服器處理序預設啟動後,並無任何認證機制,即任何使用者都可隨意串連資料庫進行讀寫操作。MongoDB 有個比較特殊的資料庫 admin,

  專門用來儲存資料庫管理員資訊的。在 MongoDB 裡是有不同的角色的,每種角色只能擁有相應的許可權,使用者也能自訂角色。官方詳解

4.2、認證授權步驟

  為了啟用認證機制,我們需要建立兩個使用者:擁有 userAdminAnyDatabase 角色的使用者、對應資料庫讀寫權限 readWrite 的使用者,如:  

  先啟動不需要認證的伺服器處理序,用 mongo shell 直接進入配置:

  1)添加一個超級使用者“root”

    步驟一:開啟Mongo shell  

    mongo

    

    步驟二:進入admin表

    use admin

    

    步驟三:建立一個超級管理賬戶

    

    步驟三:查看使用者是否建立成功

    

    表示建立成功了!

五、MongoDB許可權

  1)資料庫使用者角色:read、readWrite

    read:允許使用者讀取指定資料庫 
    readWrite:允許使用者讀寫指定資料庫

  2)資料庫管理角色:dbAdmin、dbOwner、userAdmin

    dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile  

    userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和系統管理使用者   

  3)叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager

    clusterAdmin:只在admin資料庫中可用,賦予使用者所有分區和複製集相關函數的系統管理權限

  4)備份恢複角色:backup、restore  

  5)所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權 
    readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限 
    userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權 
    dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。 

  6)超級使用者角色:root    

.    root:只在admin資料庫中可用。超級帳號,超級許可權

    注意:這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)

 

MongoDB(一)環境搭建與初始配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.