centos8 使用yum 安裝 mongodb

1、製作 repo 文件

cat << EOF > /etc/yum.repos.d/mongodb-org-4.2.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF

baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.2/x86_64/安裝失敗,嘗試把地址寫死爲7,安裝基於centos7的版本。可以成功安裝
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/

2、使用yum 命令安裝

yum install -y mongodb-org

3、啓動mongodb

安裝完啓動服務則可以使用

啓動、停止、重啓命令如下:

service mongod start
service mongod stop
service mongod restart

4、開放 mongodb 的遠程連接

mongodb的配置文件是 /etc/mongod.conf

如果要開放遠程訪問需要修改該文件的 bindIp值爲: 0.0.0.0 ,否則通過其它電腦是連接不到的見文章末尾圖片

vim /etc/mongod.conf

文件修改後要執行 restart 使配置生效

service mongod restart

如果仍不能遠程連接,查看防火牆狀態,如果防火牆開啓,關閉防火牆或 讓防火牆放開 27017 端口(該端口是mongodb的默認端口,可通過配置文件修改mongodb的端口)
查看防火牆狀態

  firewall-cmd --state   

關閉防火牆狀態

systemctl stop firewalld.service 

防火牆放開 27017 端口

firewall-cmd --permanent --zone=public --add-port=27017/tcp
firewall-cmd --reload 

測試是否可以遠程連接
http://服務器ip:27017/
如果不需要用戶及密碼,mongodb安裝到此就結束了,如需要進行權限控制請參考第五步

5、創建用戶和密碼

1.進入mongo shell

[root@localhost ~]# mongo
在這裏插入圖片描述

2.切換到admin數據庫

admin這個庫是mongodb自動帶的,專門管理用戶和權限的,創建超級用戶,這個用戶可以管理所有用戶的增刪改以及權限控制

> use admin
switched to db admin

3.添加賬戶

創建一個超級管理員權限(擁有userAdminAnyDatabasereadWriteAnyDatabase兩個權限)的用戶。用戶名和密碼隨便寫,但是角色必須是這兩個
db.createUser( { user: "adroot", pwd: "adroot", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )
在這裏插入圖片描述
記好用戶名和密碼,下面要用到
mongodb的用戶角色權限參考

user:用戶名

pwd:密碼

roles:指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。role裏的角色可以選:

Built-In Roles(內置角色):
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system

具體角色:

Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限。

4.修改mongo.conf文件

停止mongodb服務(service mongod stop),修改配置文件(/etc/mongod.conf)
security:
authorization: enabled
在這裏插入圖片描述

5.驗證

啓動mongodb service mongod start
驗證權限有兩種方式

  • 連接實例的時候就驗證(用戶名密碼是上面創建用戶時設置的)
    mongo --port 27017 -u "adroot" --authenticationDatabase "admin" -p
    之後會讓你輸入密碼:輸入adroot
    在這裏插入圖片描述
  • 連接實例之後,使用數據庫的時候驗證
    先連接實例:mongo
    然後驗證:(用戶名密碼是上面創建用戶時設置的)
    use admin
    db.auth("adroot", "adroot" )
    返回一個:1,表示成功
    在這裏插入圖片描述

6、給其他數據庫創建用戶權限

一旦通過用戶管理員身份驗證,就可以使用 db.createUser()創建其他用戶。可以將任何內置角色或用戶定義的角色分配給用戶,角色可以看官網介紹,也可以參考上面mongodb的用戶角色權限參考
創建了一個test數據庫:
user mytest
在這裏插入圖片描述
這條語句就是,數據庫存在則轉到該數據庫,不存在則創建之後轉到該數據庫
注意:mongodb創建數據庫後需要對數據庫做一次操作,數據庫才真正創建保留
在這裏插入圖片描述
給數據庫插入一條數據:
插入語句:db.collection.insertOne()
collection表示集合,如果集合不存在則自動創建之後插入數據,比如下面的這個語句,將自動創建testcollection,並插入一個對象
db.testcollection.insert({“name”:“test”,“age”:10})
在這裏插入圖片描述
創建用戶
use test

db.createUser(
  {
    user: "tester",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "test" }]
  }
)

創建成功之後,斷開實例連接

然後重新以驗證方式登錄實例,這裏使用第一種方式(連接時驗證):
mongo --port 27017 -u "tester" --authenticationDatabase "test" -p
輸入密碼:123456

現在你有權在test中執行讀寫操作了:
db.testcollection.insert({"name":"testertest","age":20})
查詢一下插入結果:
db.users.find().pretty()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章