CentOS安裝MongoDB

[toc]
1. 安裝并運行
在 CentOS 上安裝 MongoDB,你可以按照以下步驟進行:
-
導(dǎo)入 MongoDB 的 GPG 密鑰:
sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc -
創(chuàng)建 MongoDB 的 YUM 存儲庫文件
/etc/yum.repos.d/mongodb-org-5.0.repo,并使用文本編輯器打開它:sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo在文件中添加以下內(nèi)容:
[mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc保存并關(guān)閉文件。
-
安裝 MongoDB:
sudo yum install -y mongodb-org -
啟動 MongoDB 服務(wù):
sudo systemctl start mongod -
設(shè)置 MongoDB 開機自啟動:
sudo systemctl enable mongod -
檢查 MongoDB 服務(wù)狀態(tài):
sudo systemctl status mongod如果一切正常,你應(yīng)該會看到 MongoDB 服務(wù)已經(jīng)運行。
默認情況下,MongoDB 監(jiān)聽在 127.0.0.1 的本地接口上。如果你需要允許遠程訪問,你需要編輯 MongoDB 配置文件
/etc/mongod.conf并更改bindIp部分以允許所需的 IP 地址。保存更改并重新啟動 MongoDB 服務(wù)。確保防火墻允許 MongoDB 的訪問。如果使用默認的 MongoDB 端口 27017,請確保你的防火墻規(guī)則允許流量通過該端口。
現(xiàn)在,MongoDB 應(yīng)該已經(jīng)安裝并在 CentOS 上運行。你可以使用 mongo 命令行客戶端或其他 MongoDB 客戶端工具連接到數(shù)據(jù)庫。
2. 創(chuàng)建用戶/密碼
在默認配置下,MongoDB 安裝后沒有設(shè)置密碼,因此可以直接通過沒有身份驗證的方式訪問 MongoDB 數(shù)據(jù)庫。這在生產(chǎn)環(huán)境中是不安全的,因此建議你設(shè)置 MongoDB 的身份驗證密碼以增強安全性。
以下是在 MongoDB 上設(shè)置密碼的一般步驟:
-
啟動 MongoDB 并連接到數(shù)據(jù)庫服務(wù)器。
mongo -
切換到
admin數(shù)據(jù)庫。你將在admin數(shù)據(jù)庫中創(chuàng)建用戶。use admin -
創(chuàng)建一個管理員用戶,并為其分配密碼。在這個例子中,我們創(chuàng)建一個用戶名為
adminUser的管理員用戶,你可以替換為你想要的用戶名和密碼。db.createUser({ user: "adminUser", pwd: "yourPassword", roles: ["root"] })請確保將
yourPassword替換為你選擇的實際密碼。 -
退出 MongoDB。
quit() -
編輯 MongoDB 配置文件
/etc/mongod.conf。sudo vi /etc/mongod.conf添加以下行以啟用身份驗證:
security: authorization: enabled保存并關(guān)閉文件。
-
重新啟動 MongoDB 服務(wù)。
sudo systemctl restart mongod
現(xiàn)在,MongoDB 已經(jīng)配置了身份驗證,你需要提供用戶名和密碼才能訪問數(shù)據(jù)庫。在命令行上連接到 MongoDB 時,你可以使用 -u 和 -p 選項提供用戶名和密碼:
mongo -u adminUser -p yourPassword --authenticationDatabase admin
請確保將 adminUser 和 yourPassword 替換為你實際設(shè)置的用戶名和密碼。
3. 測試語句
要測試 MongoDB 數(shù)據(jù)庫中的查詢語句或執(zhí)行其他操作,你可以使用 MongoDB 的命令行客戶端 mongo。以下是一些示例查詢語句和其他操作:
-
連接到 MongoDB 數(shù)據(jù)庫:
mongo -u adminUser -p yourPassword --authenticationDatabase admin請將
adminUser和yourPassword替換為你的用戶名和密碼。 -
列出所有數(shù)據(jù)庫:
show dbs -
切換到一個數(shù)據(jù)庫:
use yourDatabase將
yourDatabase替換為你要使用的實際數(shù)據(jù)庫。 -
插入文檔到集合:
db.yourCollection.insert({ key: "value" })將
yourCollection替換為你要插入文檔的集合名稱,key和value替換為你要插入的字段和值。 -
查詢集合中的文檔:
db.yourCollection.find()這將返回集合中的所有文檔。
-
更新文檔:
db.yourCollection.update({ key: "value" }, { $set: { keyToUpdate: "newValue" } })這將更新匹配條件的文檔中的字段值。
-
刪除文檔:
db.yourCollection.remove({ key: "value" })這將刪除匹配條件的文檔。
-
顯示集合中的文檔數(shù):
db.yourCollection.count()這將返回集合中的文檔數(shù)量。
4. 允許外網(wǎng)訪問
要允許外網(wǎng)訪問 MongoDB,你需要在 MongoDB 的配置文件中做一些更改,以及根據(jù)你的環(huán)境設(shè)置防火墻規(guī)則。以下是一般步驟:
-
編輯 MongoDB 配置文件:
打開 MongoDB 的配置文件,通常位于
/etc/mongod.conf。你可以使用文本編輯器打開它,例如:sudo vi /etc/mongod.conf -
在配置文件中找到
bindIp配置項。默認情況下,它可能設(shè)置為127.0.0.1,這只允許本地訪問。你需要更改它以允許外網(wǎng)訪問。bindIp: 0.0.0.0這將允許 MongoDB 偵聽所有網(wǎng)絡(luò)接口上的連接。
請注意,將
bindIp設(shè)置為0.0.0.0可能會帶來一定的安全風(fēng)險,因為它會使 MongoDB 開放給所有的IP地址。因此,你應(yīng)該采取其他措施來限制對 MongoDB 的訪問,如設(shè)置身份驗證和訪問控制列表(ACL)。 保存并關(guān)閉配置文件。
-
重新啟動 MongoDB 服務(wù):
sudo systemctl restart mongod -
設(shè)置防火墻規(guī)則:
如果你的服務(wù)器上啟用了防火墻(如Firewalld),你需要確保打開 MongoDB 的監(jiān)聽端口(默認是27017)以允許外部訪問。你可以運行以下命令:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent sudo firewall-cmd --reload這將添加一個永久的規(guī)則,允許外部連接到 MongoDB 的端口。
現(xiàn)在,你的 MongoDB 服務(wù)器應(yīng)該已經(jīng)允許外部訪問。但請注意,在將 MongoDB 公開到外部網(wǎng)絡(luò)時,務(wù)必采取額外的安全措施,如配置身份驗證、設(shè)置訪問控制列表、定期備份數(shù)據(jù)以及監(jiān)控數(shù)據(jù)庫活動,以確保安全性和數(shù)據(jù)保護。