MonGoDB的入门学习(一)之MonGoDB的介绍和安装

MonGoDB

Windows下载安装

https://www.mongodb.com/try/download/community?tck=docs_server

 

 

 直接下载就行

下载好后进行安装,目录自行选择,这里我安装在了E目录下

 

 

 

  安装好后原本是没有data文件和log文件夹的,这里我们需要自己手动创建这两个文件夹,并且要在data文件夹中在创建一个db文件夹

 

接下来就可以启动应用服务了,以管理员身份运行cmd命令窗口,并进入至E:\MongoDB\bin目录下,执行以下命令

1
mongod --dbpath E:\MongoDB\data\db

再打开一个cmd命令窗口,并且还是以管理员身份打开,进入到E:\MongoDB\bin目录下,执行以下命令

1
mongo

(如果现实这个界面就说明MongoDb已经启动成功了,但是要注意,这两个cmd命令框关闭后那么MongoDB也就结束服务了)

6、启动后我们可以在服务器输入 http://127.0.0.1:27017 或者 http://localhost:27017 进行查看

 

(这个样子就说明启动成功了)

7、使用配置文件启动MongoDB服务:在E:\MongoDB\config创建一个文件mongodb.conf,加入配置文件与直接运行命令的效果是一样的

1
2
3
4
5
6
dbpath=E:\MongoDb\data\db # 数据库文件
logpath=E:\MongoDB\log\mongodb.log # 日志文件
logappend=true # 日志采用追加模式,配置后mongodb日志会追加到现有的日志文件,不会重新创建一个新文件
journal=true # 启用日志文件,默认启用
quiet=true # 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为 false
port=27017 # 端口号 默认为 27017

然后运行命令:

1
sc create MongoDB binPath= "E:\MongoDB\bin\mongod.exe --service --config=E:\MongoDb\config\mongodb.conf"

8、将MongoDB加入至环境变量:此时进入至mongodb的目录才可以使用mongodb的命令行工具,如果在其他的目录,是不可以使用mongodb的命令行工具的,我们可以将mongodb的目录加入至环境变量,这样在任何位置都可以使用mongodb命令行工具了

在设置中搜索变量就可以看到点击环境变量将mongodb的bin目录加入至path环境变量中

 

在加入了环境变量后,随便在哪个目录都可以使用mongodb命令行工具了

Linux下载安装

https://www.mongodb.com/try/download/community

 

一、创建MongoDB的安装路径
在/usr/local/ 创建文件夹mongoDB 

1
mkdir mongodb

二、上传文件到Linux上的/usr/local/mangodb目录下
我首先在mongoDB下载路径下载mongoDB下载对应的版本.
通过FTP工具将安装包上传到linux机器上面.
三、解压文件
进入到/usr/local/mongodb目录: 

1
cd /usr/local/mongodb

运行如下命令:

1
2
3
tar ­zxvf mongodb-linux-x86_64-rhel70-5.0.5.tgz ­C /usr/local/mongodb
或者
tar ­zxvf mongodb-linux-x86_64-rhel70-5.0.5.tgz

这里的 C 是解压后复制解压的文件到 /usr/local/mongoDB 目录下

四、重命名

进入 解压后的目录

1
cd /usr/local/mongoDB/

执行 

1
mv mongodb-linux-x86_64-rhel70-5.0.5 mongodb

五、创建配置文件
进入目录

1
2
cd /usr/local/mongodb
创建数据库文件夹:mkdir data/db data/logs -p创建mongo配置文件夹:mkdir etc

进入日志文件夹:

1
cd /usr/local/mongodb/data/logs

创建日志文件:

1
touch mongodb.log

进入配置文件夹:

1
cd /usr/local/mongodb/etc

创建配置文件:

1
vim mongodb.conf

 该命令无该文件保存后会创建该文件,有该文件就是进入编辑

输入 i,进入编辑模式, 写入如下内容后,按esc 建 输入 :wq 保存退出

第一个(第二个4.0之后就不太好用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#MonGoDB的配置文件 mongod.conf
 
# 配置文件全部配置参考下面网址:
#   http://docs.mongodb.org/manual/reference/configuration-options/
 
# 存储数据的地点和方法.
storage:
  dbPath: /usr/local/mongodb/data/db
  journal:
    enabled: true
#  engine:
#  wiredTiger:
 
# 写入日志数据的位置.
systemLog:
  destination: file
  logAppend: true
  path:  /usr/local/mongodb/data/logs/mongod.log
 
#进程如何运行
processManagement:
   fork: true # 是否启用进程在后台进行
   pidFilePath: /usr/local/mongodb/mongodb.pid #pidfile的位置
   timeZoneInfo: /usr/share/zoneinfo
 
# 网络配置
net:
  port: 27017 #默认端口号
  bindIp: 0.0.0.0 #设定IP地址白名单,此处我们注释为了方便学习
  #为了方便学习改为true,生产环境使用白名单
  bindIpAll: true #是否允许所有的ip地址访问默认是fase
 
 
#processManagement:
 
#security:
 
#operationProfiling:
 
#replication:
 
#sharding:
 
## Enterprise-Only Options:
 
#auditLog:
 
#snmp:

第二个配置(重点)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#数据库文件存放路径
dbpath=/usr/local/mongodb/data/db
#日志文件存放路径
logpath=/usr/local/mongodb/data/logs/mongodb.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
# 最大同时连接数
maxConns=100
# 不启用验证权限
noauth=true
#端口
port=27017
#以守护程序的方式启用,即在后台运行开启子进程
fork=true
#引擎设置 版本不同,引擎是不一样的,不用加
#storageEngine=mmapv1
#开启认证,首次安装先不开启,待用户添加完毕后可开启认证,这里先注释掉
#auth=true<br>#以守护程序的方式启用,即在后台运行 <br>nohttpinterface = true
#绑定ip 这里设置为0.0.0.0则无论什么ip连接都成功,默认是127.0.0.1,也可设置成你自己服务器的IP
bind_ip=0.0.0.0 

启动mongodb: 

1
./mongod -f /usr/local/mongodb/etc/mongodb.conf

如下图就是启动成功!

启动成功后查看mongod状态

1
ps -ef | grep mongod     #查看mongod状态

六、设置环境变量

添加环境变量后我们就可以在任意地方直接使用mognodb 的命令了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vi /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin  
#刷新权限
source /etc/profile
查看mongodb环境
mongo --version
#查看mongodb状态
ps -ef | grep mongodb
#杀死进程
kill -9 xxxx
使用下面这个命令启动
mongod --dbpath /usr/local/mongodb --logpath /usr/local/mongodb/data/logs/mongo.log --fork
开启验证码
mongod --dbpath /usr/local/mongodb --logpath /usr/local/mongodb/data/logs/mongo.log --fork --auth
第一个配置启动命令
mongod -f /usr/local/mongodb/etc/mongod.conf #通过制定配置文件来实现启动
关闭mongodb服务
方式1:
杀死进程就行

七、开机自启

1
vi /usr/lib/systemd/system/mongodb.service 

进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit] 
Description=mongodb 
After=network.target remote-fs.target nss-lookup.target 
   
[Service] 
Type=forking 
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongod.conf 
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongod.conf 
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
设置权限
chmod 754 /etc/systemd/system/mongodb.service
重启
systemctl daemon-reload
启动
sudo systemctl start mongodb
查看启动信息
sudo systemctl status mongodb
永久启动
sudo systemctl enable mongodb
关闭自启动服务
systemctl disable mongod.service
停止服务
systemctl stop mongod
如果有journalctl -xe
使用journalctl -xe 查看错误日志,看到:
Feb 25 10:35:15 jt-server1 mongod[26053]: Error reading config file: No such file or directory
Feb 25 10:35:15 jt-server1 mongod[26053]: try '/opt/soft/mongodb/bin/mongod --help' for more information
接着去检查 一下mongodb.service文件

添加用户

1
2
3
4
5
6
7
8
9
10
11
12
# 进入数据库
mongo
# 进入testclient数据库
use testclient
# 创建超级管理员(可以创建数据库)
db.createUser({user:"root",pwd:"root",roles:[{role: 'root', db: 'admin'}]})
# 退出
exit
# 登录testclient 数据库
mongo testclient
# root管理员登录
db.auth('root','root')

MonGoDB的应用场景

  • 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
  • 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
  • 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
  • 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
  • 视频直播,使用 MongoDB 存储用户信息、礼物信息等

MonGoDB的优点

1  满足对数据库的高并发读写
2  对海量数据的高效存储和访问
3  对数据库高扩展性和高可用性
4  灵活的数据结构,满足数据结构不固定的场景

MonGoDB的缺点

1  一般不支持事务
2  实现复杂SQL查询比较复杂
3  运维人员数据维护门槛较高
4  目前不是主流的数据库技术

MonGoDB的特性

1 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
2 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
3 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
4 完整的索引支持,支持查询计划;
5 支持复制和自动故障转移;
6 支持二进制数据及大型对象(文件)的高效存储;
7 使用分片集群提升系统扩展性;
8 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;

什么场景不能用MongoDB?

1 高度事务性系统:例如银行、财务等系统。MongoDB对事物的支持较弱;
2 传统的商业智能应用:特定问题的数据分析,多数据实体关联,涉及到复杂的、高度优化的查询方式;
3 使用sql方便的时候;数据结构相对固定,使用sql进行查询统计更加便利的时候;

什么时候使用MonGoDB

应用特征Yes / No
应用不需要事务及复杂 join 支持 必须 Yes
新应用,需求会变,数据模型无法确定,想快速迭代开发
应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至 PB 级别数据存储 ?
应用发展迅速,需要能快速水平扩展 ?
应用要求存储的数据不丢失 ?
应用需要99.999%高可用 ?
应用需要大量的地理位置查询、文本查询

 

 

 

 MonGoDB的简介

NoSQL:Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。

MongoDB概念与RDMS概念对比

 使用小黑窗口进行连接Windows版

1
2
3
4
5
mongo
否则
mongo --host=127.0.0.1 --port=27017
#验证是否启动成功
show dbs 

使用Compass图形化界面

下载Download Center: Compass | MongoDB

直接安装就行

版本按照默认稳定版的来,选择自己电脑的操作系统,然后Download下载:

2、接着点击安装包安装,一路next即可(中途也可以更换安装路径):

 

3、根据安装路径找到执行文件,点击即可打开mongodb可视化界面:

4、打开之后界面如下,点击红框处填写数据库连接相关配置:

5、即出现如下界面,主要填写红框处必填项,port端口可以根据实际情况来,一般默认27017,此处都是按照默认的,最后点击按钮CONNECT进行数据库连接:

6、连接成功之后,会出现如下界面,显示出默认自带的三个数据库(admin、config、local):

MonGoDB执行添加语句加不上去的问题

官方的MongoDB 4.2系列驱动程序默认情况下启用重试写入。除非明确禁止重试写入,在升级到4.2系列驱动程序后,写入本地数据库的应用程序将遇到写入错误。
要禁用可重试写入,请在MongoDB集群的连接字符串中设置retryWrites=false

1
spring.data.mongodb.uri=mongodb://user:1@10.10.65.1:27017,10.10.65.2:27017,10.10.65.3:27017/test?retryWrites=false

  

 

posted @   永远爱芒果  阅读(500)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示