本文爲轉載,原文:Centos下mongodb3.4的安裝與配置
mongodb安裝
yum命令安裝
本次安裝使用的是yum
命令安裝,在安裝志強,我們先執行以下命令更新下yum
。
yum update
然後添加mongodb
的yum
源。
cd /etc/yum.repos.d/
vim mongodb-3.4.repo
將以下內容添加到mongodb-3.4.repo
中
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
這裏可以修改 gpgcheck=0
, 省去gpg
驗證
最後再執行以下命令進行安裝:
yum install -y mongodb-org
執行完命令後,耐心等待即可。
驗證是否成功
我們再來執行以下命令驗證下我們是否安裝成功:
mongo --version
這個結果便說明已經安裝成功。
我們可以通過以下命令查看安裝後的相關文件目錄:
whereis mongod
/etc/mongod.conf
就是mongodb的配置文件。啓動,停止服務
centos7以下的啓動、停止服務命令如下:
sudo service mongod start //啓動服務
sudo service mongod stop //停止服務
centos7以上的啓動停止服務命令如下:
systemctl start mongod.service //啓動服務
systemctl stop mongod.service //停止服務
systemctl status mongod.service //查看服務狀態
在終端輸入
mongo
命令即可進入mongodb的shell
腳本:可以輸入些簡單的命令驗證測試下:
配置授權登錄
之前直接輸入mongo
命令進入腳本,是沒有使用用戶名和密碼登錄的。那麼,我們要如何才能使用用戶名密碼來管理我們的mongodb呢?
首先,我們得創建用戶,同樣我們先使用mongo
命令進入腳本,並一次執行以下命令用以創建用戶:
> mongo
> use admin
> db.createUser({
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
})
user
:用戶名pwd
:密碼
roles:指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。role裏的角色選擇我在文章後面補充。
然後,我們在修改下配置文件,先在mongo腳本里輸入exit
退出mongo。之後再輸入以下命令修改配置文件:
vim /etc/mongod.conf
修改圖中紅色框的內容,註釋
bindIp
,解開security
的註釋,並在下方添加authorization: enabled
即可。之後再重啓mongodb,重啓的命令之前已經說過了,centos7之前與之後有些差別。
然後再試下
mongo
命令。我們發現
show dbs
命令報錯了,這是因爲我們開啓了認證,但是我們並沒有登錄。我們可以用以下命令來添加授權:> use admin
> db.auth("root","123456")
這樣我們就可以繼續訪問mongodb了。
或者我們可以用我們的用戶名密碼登錄:
mongo 127.0.0.1:27017/admin -u root -p
這樣也是可以的。
mongodb角色
內置角色
數據庫用戶角色
:read、readWrite;數據庫管理角色
:dbAdmin、dbOwner、userAdmin;集羣管理角色
:clusterAdmin、clusterManager、clusterMonitor、hostManager;備份恢復角色
:backup、restore;所有數據庫角色
:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase超級用戶角色
:root, 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)內部角色
:__system
具體角色
read
:允許用戶讀取指定數據庫readWrite
:允許用戶讀寫指定數據庫dbAdmin
:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profileuserAdmin
:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶clusterAdmin
:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。readAnyDatabase
:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限readWriteAnyDatabase
:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限userAdminAnyDatabase
:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限dbAdminAnyDatabase
:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。root
:只在admin數據庫中可用。超級賬號,超級權限