在CentOS7中安裝和刪除MongoDB 4.2

在CentOS7中安裝和刪除MongoDB 4.2

參考文檔

安裝MongoDB

推薦採用Yum在線安裝方式,在沒有Yum源時也可以採用Rpm離線安裝方式。

Yum在線安裝

在CentOS7中安裝MongoDB 4.2 Community Edition。

添加MongoDB Yum repo:

創建/etc/yum.repos.d/mongodb-org-4.2.repo,添加以下內容:

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

讓MongoDB Yum repo生效:

sudo yum clean all
sudo yum makecache

檢查MongoDB包版本:

sudo yum list mongodb-org

安裝MongoDB:

sudo yum install -y mongodb-org

或安裝指定版本的MongoDB,比如MongoDB 4.2.5:

sudo yum install -y mongodb-org-4.2.5 mongodb-org-server-4.2.5 mongodb-org-shell-4.2.5 mongodb-org-mongos-4.2.5 mongodb-org-tools-4.2.5

以服務方式啓動MongoDB:

sudo systemctl enable mongod
sudo systemctl start mongod

檢查MongoDB服務:

sudo systemctl status mongod

如果啓動報錯,請參考下面的Troubleshooting。

連接MongoDB驗證是否安裝成功:

mongo
help

Rpm離線安裝

下載CentOS7 x86_64的MongoDB 4.2的rpm,比如MongoDB 4.2.5:

https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/

安裝MongoDB:

sudo yum isntall -y mongodb-*.rpm

配置MongoDB

默認安裝好後的MongoDB是一個“裸奔”狀態,需要進行一些必要的安全配置才能使用。

MongoDB目錄和配置文件

# 配置文件
# 常見配置:系統日誌、數據存儲、IP和端口、安全
/etc/mongod.conf

# 日誌
/var/log/mongodb/mongod.log

# 數據
/var/log/mongodb/

Increase User Limits

echo "mongod     soft    nofiles   64000" >> /etc/security/limits.conf
echo "mongod     hard    nofiles   64000" >> /etc/security/limits.conf
echo "mongod     soft    nproc     64000" >> /etc/security/limits.conf
echo "mongod     hard    nproc     64000" >> /etc/security/limits.conf

修改ulimit配置後,需要重啓MongoDB才能生效:

sudo systemctl restart mongod

參考:

https://docs.mongodb.com/manual/reference/ulimit/

安全配置

開啓MongoDB驗證,修改/etc/mongod.conf,添加:

security:
  authorization: enabled

修改配置後,需要重啓MongoDB才能生效:

sudo systemctl restart mongod

爲安全起見,自MongoDB 3.6起,MongoDB默認只允許本機訪問:

net:
  port: 27017
  bindIp: 127.0.0.1

警告:強烈不建議將bindIp設爲0.0.0.0會導致任何IP都可以訪問該MongoDB的安全風險。

參考:

創建數據庫和用戶

創建管理員賬號:

# 默認數據庫爲test
db

# 切換到admin數據庫
use admin

# 創建管理員賬號
db.createUser({user: "mongo-admin", pwd: "test@123", roles:[{role: "userAdminAnyDatabase", db: "admin"}]})

# 退出MongoDB Shell
exit

創建數據庫和用戶:

# 用上面創建的管理員賬號登錄
mongo -u mongo-admin --authenticationDatabase admin

# 創建並切換到該數據庫(如果不存在),比如創建一個blog數據庫來保存博客的文章、作者和評論等文檔
use blog

# 在blog數據庫上創建一個用戶名爲blogapp的用戶,讓該用戶有讀寫數據的權限
db.createUser({user: "blogapp", pwd: "blog@123", roles:[{role:"readWrite", db: "blog"}]})

# 退出MongoDB Shell
exit

使用新創建的用戶登錄:

# 使用blogapp用戶登錄
mongo -u blogapp --authenticationDatabase blog

參考:

Troubleshooting

參考

啓動MongoDB失敗,錯誤代碼62

錯誤代碼62的官方說明:Returned by mongod if the datafiles in --dbpath are incompatible with the version of mongod currently running.

如果原來安裝了舊的版本的MongoDB,在安裝新版本MongoDB後,數據文件不兼容,會導致該錯誤。

如果只是測試環境,可以參考下面的刪除MongoDB將MongoDB程序和數據都刪除掉,再重新安裝MongoDB。

如果是生產環境,則需要先upgrade data。

參考:

https://stackoverflow.com/questions/47850004/mongodb-shutting-down-with-code62

刪除MongoDB

查看已安裝的MongoDB:

sudo yum list installed | grep mongodb

停止MongoDB:

sudo systemctl stop mongod

刪除MongoDB:

sudo yum erase $(rpm -qa | grep mongodb-org)

刪除數據目錄:

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

參考:

https://stackoverflow.com/questions/8766579/uninstalling-mongo

MongoDB教程

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