你需要一份在openEuler系統下安裝MongoDB的技術教程,我會按照環境準備→安裝部署→配置啓動→功能驗證的流程,提供詳細且可直接操作的步驟,同時覆蓋開源版MongoDB(社區版)的核心配置要點。
一、環境説明
- 系統版本:openEuler 20.03/LTS/22.03(x86_64/ARM64均適用,下文以x86_64為例)
- MongoDB版本:7.0(社區版,當前穩定版)
- 前提條件:擁有root權限,服務器能訪問外網(或已準備MongoDB安裝包)
二、步驟1:環境準備與依賴配置
1.1 更新系統並安裝基礎依賴
# 切換到root用户(若已為root可跳過)
su root
# 更新系統包
dnf update -y
# 安裝基礎依賴(MongoDB運行所需)
dnf install -y wget net-tools libcurl openssl
1.2 配置MongoDB官方yum源
openEuler基於RPM包管理,直接使用MongoDB官方yum源更便捷:
# 創建MongoDB的yum源配置文件
vim /etc/yum.repos.d/mongodb-org-7.0.repo
將以下內容粘貼到文件中(適配openEuler的RHEL兼容架構):
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
説明:如果是ARM64架構,將
x86_64替換為aarch64即可。
三、步驟2:安裝MongoDB社區版
# 安裝MongoDB完整包(包含服務端、客户端、工具)
dnf install -y mongodb-org
# 驗證安裝版本(確認安裝成功)
mongod --version
安裝成功後,會輸出類似如下版本信息:
db version v7.0.8
Build Info: {
"version": "7.0.8",
"gitVersion": "xxx",
"openSSLVersion": "OpenSSL 1.1.1k 25 Mar 2021",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "rhel8",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
四、步驟3:MongoDB核心配置
3.1 創建數據和日誌目錄(默認目錄需手動創建)
# 創建數據存儲目錄
mkdir -p /var/lib/mongo
# 創建日誌存儲目錄
mkdir -p /var/log/mongodb
# 設置目錄權限為mongodb用户(安裝後自動創建的系統用户)
chown -R mongodb:mongodb /var/lib/mongo /var/log/mongodb
chmod -R 755 /var/lib/mongo /var/log/mongodb
3.2 修改MongoDB配置文件
MongoDB默認配置文件為/etc/mongod.conf,需調整關鍵配置以適配生產/測試環境:
vim /etc/mongod.conf
修改後的核心配置如下(保留註釋,關鍵項修改):
# 網絡配置
net:
port: 27017 # 默認端口,可自定義
bindIp: 0.0.0.0 # 允許所有IP訪問,測試環境用;生產環境改為具體IP
# 數據存儲
storage:
dbPath: /var/lib/mongo # 數據目錄,對應上面創建的路徑
engine: wiredTiger # 默認存儲引擎,高性能
# 日誌配置
systemLog:
destination: file
path: /var/log/mongodb/mongod.log # 日誌文件路徑
logAppend: true # 日誌追加模式,不覆蓋舊日誌
# 進程管理
processManagement:
fork: true # 以守護進程方式運行
pidFilePath: /var/run/mongodb/mongod.pid # PID文件路徑
# 副本集/單節點配置(單節點無需配置replicaSet,註釋即可)
# replication:
# replSetName: rs0
# 安全配置(測試環境可先關閉,生產環境必須開啓認證)
security:
authorization: disabled # 臨時關閉認證,後續可開啓
説明:生產環境需開啓
authorization: enabled(認證),並創建管理員賬户。
五、步驟4:啓動MongoDB並設置開機自啓
# 啓動mongod服務
systemctl start mongod
# 設置開機自啓
systemctl enable mongod
# 查看服務狀態(確認是否active running)
systemctl status mongod
若狀態顯示active (running),説明服務啓動成功;若失敗,可查看日誌/var/log/mongodb/mongod.log定位問題。
(可選)關閉防火牆和SELinux(測試環境)
如果客户端無法連接MongoDB,可臨時關閉防火牆和SELinux(生產環境需配置規則,而非直接關閉):
# 臨時關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
# 臨時關閉SELinux
setenforce 0
# 永久關閉SELinux(需重啓服務器)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
六、步驟5:功能驗證與基礎操作
6.1 連接MongoDB客户端
# 本地連接(默認無認證)
mongo
# 或使用新的客户端命令(MongoDB 6.0+推薦)
mongosh
6.2 基礎操作示例(創建數據庫、集合、插入數據)
// 1. 創建/切換到test數據庫(MongoDB無顯式創建,首次寫入即創建)
use test
// 2. 創建集合並插入數據
db.user.insertOne({
name: "openEuler",
age: 5,
platform: "openEuler 22.03"
})
// 3. 查詢數據
db.user.find()
// 4. 退出客户端
exit
執行後若能看到插入的文檔數據,説明MongoDB功能正常。
七、步驟6:生產環境必備配置(開啓認證)
測試環境完成後,生產環境需開啓用户認證,步驟如下:
# 1. 重新連接MongoDB
mongosh
# 2. 切換到admin數據庫(系統庫)
use admin
# 3. 創建管理員賬户(擁有所有權限)
db.createUser({
user: "root",
pwd: "MongoDB@123", # 自定義強密碼
roles: [{role: "root", db: "admin"}]
})
# 4. 退出客户端
exit
# 5. 修改配置文件開啓認證
vim /etc/mongod.conf
# 將security下的authorization改為enabled:
security:
authorization: enabled
# 6. 重啓mongod服務使配置生效
systemctl restart mongod
# 7. 使用認證連接MongoDB
mongosh -u root -p MongoDB@123 --authenticationDatabase admin
八、常見問題解決
- 啓動失敗:提示端口被佔用
查看端口占用:netstat -tulpn | grep 27017,殺死佔用進程或修改mongod.conf中的port配置。 - 權限不足:無法寫入數據/日誌
重新設置目錄權限:chown -R mongodb:mongodb /var/lib/mongo /var/log/mongodb。 - 外網無法連接
確認bindIp為0.0.0.0,且防火牆開放27017端口:firewall-cmd --add-port=27017/tcp --permanent && firewall-cmd --reload。
總結
- 在openEuler下安裝MongoDB的核心步驟為:配置官方yum源→安裝包→創建數據/日誌目錄→修改配置→啓動服務。
- 測試環境可臨時關閉認證和防火牆,生產環境必須開啓用户認證、限制IP訪問並配置防火牆規則。
- 若遇到啓動或連接問題,優先查看MongoDB日誌文件
/var/log/mongodb/mongod.log定位原因。