最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB搭建過程及單機版部署方法

 更新時間:2025年11月17日 11:41:59   作者:是Judy咋!  
MongoDB 是一個靈活、高性能的 NoSQL 數(shù)據(jù)庫,特別適合快速開發(fā)和大規(guī)模分布式系統(tǒng),本文給大家介紹MongoDB搭建過程及單機版部署方法,感興趣的朋友跟隨小編一起看看吧

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

前言

MongoDB 是一個開源的、面向文檔(Document-Oriented)的 NoSQL 數(shù)據(jù)庫,由 10gen(現(xiàn)為 MongoDB Inc.)開發(fā),最初發(fā)布于 2009 年。它與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(如 MySQL、PostgreSQL)不同,采用 靈活的 JSON 風(fēng)格文檔存儲,具有高擴展性和高性能。

1?? 核心特點

1、文檔存儲

  • 數(shù)據(jù)以 BSON(Binary JSON)格式存儲,類似 JSON。
  • 一個文檔相當(dāng)于關(guān)系型數(shù)據(jù)庫中的一行記錄,但結(jié)構(gòu)可以靈活變化。

2、無模式(Schema-less)

  • 數(shù)據(jù)庫不強制固定字段結(jié)構(gòu),每個文檔可以有不同的字段。
  • 便于快速迭代和處理復(fù)雜數(shù)據(jù)。

3、高性能

  • 支持內(nèi)存映射存儲和索引加速查詢。
  • 高并發(fā)讀寫性能優(yōu)越,適合大數(shù)據(jù)量場景。

4、水平擴展(Sharding)

  • 支持自動分片,將數(shù)據(jù)分布到多臺服務(wù)器上,方便擴展。
  • 可以通過配置 shardsvr 和 replSet 構(gòu)建分布式集群。

5、副本集(Replication)

  • 支持副本集,自動復(fù)制數(shù)據(jù)到多個節(jié)點,保證高可用。
  • 自動主從切換(Primary/Secondary)保證容錯。

6、豐富的查詢和聚合

  • 提供類似 SQL 的查詢語言,但更適合文檔結(jié)構(gòu)。
  • 支持聚合管道(Aggregation Pipeline)、全文索引、地理位置查詢等。

7、索引支持

  • 支持單字段、復(fù)合索引、文本索引、地理索引等。

2?? 優(yōu)點

1、靈活性強:

  • 文檔結(jié)構(gòu)自由,適合非結(jié)構(gòu)化數(shù)據(jù)。

2、易擴展:

  • 通過分片和副本集可橫向擴展。

3、高性能:

  • 支持高并發(fā)和大數(shù)據(jù)量。

4、豐富功能:

  • 支持事務(wù)、聚合、索引、地理位置和全文搜索。

5、快速開發(fā):

  • 無需設(shè)計復(fù)雜的表結(jié)構(gòu),適合敏捷開發(fā)。

3?? 缺點

1、事務(wù)支持有限

  • (MongoDB 4.0+ 支持多文檔事務(wù),但比關(guān)系型數(shù)據(jù)庫復(fù)雜)。

2、內(nèi)存消耗高:

  • 大量索引和數(shù)據(jù)容易占用內(nèi)存。

3、一致性:

  • 默認副本集使用最終一致性,強一致性需要額外配置。

4、查詢復(fù)雜度:

  • 復(fù)雜 SQL 查詢和 Join 不如關(guān)系型數(shù)據(jù)庫方便。

4?? 典型應(yīng)用場景

1、大數(shù)據(jù)存儲:

  • 日志、監(jiān)控數(shù)據(jù)、傳感器數(shù)據(jù)。

2、實時分析:

  • 分析和統(tǒng)計用戶行為。

3、內(nèi)容管理:

  • CMS、博客系統(tǒng)、商品目錄。

4、社交網(wǎng)絡(luò):

  • 用戶信息、帖子、評論等非結(jié)構(gòu)化數(shù)據(jù)。

5、緩存和會話存儲:

  • 高速讀寫場景下的臨時數(shù)據(jù)。

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、環(huán)境準(zhǔn)備

公網(wǎng)IP內(nèi)網(wǎng)IP服務(wù)
182.254.221.20172.16.48.102mongodb-linux-x86_64-4.0.10.tgz

二、單機部署MongoDB

2.1、下載壓縮包

[root@VM-48-41-centos ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.10.tgz

2.2、解壓到指定路徑

[root@VM-48-41-centos ~]# tar xvf mongodb-linux-x86_64-4.0.10.tgz -C /usr/local/

2.3、創(chuàng)建軟連接

[root@VM-48-41-centos ~]# cd /usr/local/
[root@VM-48-41-centos local]# ln -s mongodb-linux-x86_64-4.0.10 mongodb

2.4、進入路徑創(chuàng)建目錄

[root@VM-48-41-centos local]# cd /usr/local/mongodb && mkdir config

2.5、配置主配置文件

[root@VM-48-41-centos mongodb]# cd config
[oot@VM-48-41-centos config]# vim mongodb-27017.conf
bind_ip = 0.0.0.0   ##設(shè)置0.0.0.0是都可以連接如果想本機連接的話設(shè)置127.0.0.1
port = 27017        ##定義端口號
dbpath = /usr/local/mongodb/27017   ##數(shù)據(jù)存放路徑
logpath = /usr/local/mongodb/mongodb_27017.log  ##日志存放路徑
logappend = true   ##日志使用追加的方式
fork = true   ##以守護進程的方式運行MongoDB,創(chuàng)建服務(wù)器進程
auth = true  ##啟用驗證,true是啟用驗證false是不啟用
directoryperdb = true  ## 設(shè)置每個數(shù)據(jù)庫將被保存在一個單獨的目錄
storageEngine = wiredTiger
shardsvr=true   ##如果不添加這項,后續(xù)進行分片不成功
#replSet = test  ##副本集名稱一個副本集(主從仲)三臺機器名稱一樣,如果是單機安裝需要開啟賬號密登錄,就需要把這行注釋掉
#keyFile = /usr/local/mongodb/config/mongodb-keyfile  ##高版本不需要配置密鑰

2.6、創(chuàng)建存儲和日志路徑

[root@VM-48-41-centos config]# mkdir -p /usr/local/mongodb/27017

2.7、創(chuàng)建命令軟鏈接

[root@VM-48-41-centos config]# ln -s /usr/local/mongodb/bin/* /usr/local/bin/

2.8、啟動、關(guān)閉mongdb

[root@VM-48-41-centos config]# mongod -f /usr/local/mongodb/config/mongodb-27017.conf
[root@VM-48-41-centos config]# mongod -f /usr/local/mongodb/config/mongodb-27017.conf --shutdown

2.9、登錄mongodb,配置賬號密碼

1、設(shè)置密碼方式一
[root@VM-48-41-centos config]# mongo --port 27017
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("97c83ebe-2f8a-4489-a11b-bc60880d968b") }
MongoDB server version: 4.0.10
> use admin
switched to db admin
# 將用戶分配到 "admin" 數(shù)據(jù)庫,并賦予該用戶 root 角色。root 角色是 MongoDB 中的超級用戶角色,具有對所有數(shù)據(jù)庫的讀寫權(quán)限。
>  db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]});
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}
2、設(shè)置密碼方式二
[root@VM-48-41-centos config]# mongo --port 27017
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("97c83ebe-2f8a-4489-a11b-bc60880d968b") }
MongoDB server version: 4.0.10
> use admin
> db.createUser({
  user: "adminUser",
  pwd: "adminPassword",
  roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
解釋:
這段配置的意思是在 MongoDB 中創(chuàng)建一個用戶,并為該用戶分配一個角色。在 MongoDB 中,角色定義了用戶在數(shù)據(jù)庫中的權(quán)限。
具體來說,[{ role: "userAdminAnyDatabase", db: "admin" }] 表示將用戶分配到 "admin" 數(shù)據(jù)庫,并賦予該用戶 userAdminAnyDatabase 角色。下面是對這些元素的解釋:
role: "userAdminAnyDatabase": 這是一個 MongoDB 內(nèi)置的角色,賦予用戶在任何數(shù)據(jù)庫中管理其他用戶的權(quán)限。具體而言,該角色允許用戶在任何數(shù)據(jù)庫中創(chuàng)建和管理用戶,但不涉及其他數(shù)據(jù)庫的數(shù)據(jù)訪問權(quán)限。
db: "admin": 這表示該角色是在 "admin" 數(shù)據(jù)庫中定義的,因此該用戶在 "admin" 數(shù)據(jù)庫中將擁有 userAdminAnyDatabase 角色。
所以,上述配置的含義是創(chuàng)建一個具有在任何數(shù)據(jù)庫中管理用戶權(quán)限的用戶,并且該用戶的定義存儲在 "admin" 數(shù)據(jù)庫中。在生產(chǎn)環(huán)境中,你可能會創(chuàng)建不同的用戶并分配不同的角色,以滿足實際需求,并確保安全性和最小權(quán)限原則。

2.20、驗證登錄

[root@VM-32-7-centos config]# mongo --port 27017
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("f3f16e0a-7fe5-4a76-910e-1b74c277c2af") }
MongoDB server version: 4.0.10
> use admin
switched to db admin
> db.auth('root','root')
1

總結(jié)

MongoDB 是一個靈活、高性能的 NoSQL 數(shù)據(jù)庫,特別適合快速開發(fā)和大規(guī)模分布式系統(tǒng)。
它不是 SQL 替代品,而是適合特定場景的補充選擇:非結(jié)構(gòu)化數(shù)據(jù)、高并發(fā)、分布式存儲。

到此這篇關(guān)于MongoDB搭建過程及單機版部署的文章就介紹到這了,更多相關(guān)MongoDB搭建部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MongoDB和mysql的區(qū)別對比分析

    MongoDB和mysql的區(qū)別對比分析

    MongoDB?是一個基于分布式文件存儲的數(shù)據(jù)庫,而MySQL?是一款安全、跨平臺、高效的,并與?PHP、Java?等主流編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng),本文重點給大家介紹MongoDB和mysql的區(qū)別,需要的朋友可以參考下
    2023-01-01
  • MongoDB db.serverStatus()輸出內(nèi)容中文注釋

    MongoDB db.serverStatus()輸出內(nèi)容中文注釋

    這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個版本的中文注釋來講解,需要的朋友可以參考下
    2014-08-08
  • MongoDB數(shù)據(jù)庫常用的10條操作命令

    MongoDB數(shù)據(jù)庫常用的10條操作命令

    MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。本文簡單的介紹一些MongoDB數(shù)據(jù)庫常用的操作命令
    2021-06-06
  • 最新評論

    政和县| 黔西县| 锡林郭勒盟| 射洪县| 元江| 理塘县| 临潭县| 宁乡县| 霍山县| 洪泽县| 怀来县| 南和县| 荥经县| 彰武县| 玛曲县| 年辖:市辖区| 五指山市| 遵化市| 石棉县| 睢宁县| 治多县| 盘山县| 天等县| 宁夏| 仁寿县| 辽源市| 双桥区| 文安县| 洪雅县| 酉阳| 衡山县| 洛川县| 克什克腾旗| 旬邑县| 望江县| 荔浦县| 信宜市| 昌都县| 同心县| 马龙县| 昆明市|