MongoDB数据库Windows安装

本文详细介绍了MongoDB的安装配置过程,包括下载、安装、启动、基本操作及权限设置,展示了如何通过命令行进行数据库管理和数据操作,适用于初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Windows版


MongoDB是文档数据库,存储的是以文档(集合)为单位,使用BSON(类JSON)作为其数据结构模型,其结构是面向对象{key:value}的而不是二维表,这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。

MongoDB易伸缩,自动故障转移。易伸缩指的是提供了分片能力,能对数据集进行分片,数据的存储压力分摊给多台服务器。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从节点为主节点,达到故障转移。

MongoDB数据模型因为是面向对象的,所以可以表示丰富的、有层级的数据结构,比如博客系统中能把“评论”直接怼到“文章“的文档中,而不必像myqsl一样创建三张表来描述这样的关系。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的  

MongoDB随着在数据量和吞吐量方面的增长可轻松扩展,无需停机,无需更改应用程序。

MongoDB将数据存储在类似JSON的文档中,并且文档中每个json串结构可能有所不同。

MongoDB使用动态模式,这意味着您可以在不首先定义结构的情况下创建记录,例如字段或其值的类型。

一、下载:http://www.mongodb.org/downloads-center#community
二、安装:D:\Program Files\MongoDB

配置:(4.x安装data和log安装时会创建,注意要选择根目录,服务也是自动创建)
1、在D:\Program Files\MongoDB\下新建Data文件夹
2、在D:\Program Files\MongoDB\Data下新建db和log文件夹
3、在D:\Program Files\MongoDB\Data\log下新建MongoDB.log文件

三、启动MongoDB:
a、进入D:\Program Files\MongoDB\Server\3.2\bin>
输入:mongod -dbpath “D:\Program Files\MongoDB\Data\db”
作用:将mongodb的数据库文件创建到D:\Program Files\MongoDB\Data\db目录

注意:
1、注意是mongod.exe
2、此时界面会停在2017-03-26T15:19:17.135+0800 I NETWORK [initandlisten] waiting for connections on port 27017 (此时数据库就已经启动)

b、以Windows Service的方式启动MongoDB
注册MongoDB Service
mongod -dbpath “D:\Program Files\MongoDB\data\db” -logpath “D:\Program Files\MongoDB\data\log\MongoDB.log” -install -serviceName “MongoDB”(这里必须以管理员身份运行)

此时服务已经安装成功,运行

net start mongodb (开启服务,不能指定mongo.conf)
net stop mongodb (关闭服务)

删除MongoDB Service:
mongod -dbpath “E:\Work_App\MongoDB\Data\db” -logpath “E:\Work_App\MongoDB\Data\log\MongoDB.log” -remove -serviceName “MongoDB”

四、初识MongoDB:
新开[注意是新开]一个cmd窗口后,再运行mongo.exe 程序(注意没有d) ,此时前一个窗口显示:2017-03-26T15:31:10.148+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:60408 #1 (1 connection now open)

现在就可以使用mongodb数据库了
mongo

help
show dbs (MongoDB有系统保留库:admin|local|config)
use test
show collections
db.createCollection(“foo”) (创建表foo)
db.foo.insert({‘a’:1}) (往foo表插入a,1字段值,表不存在自动创建)
db.foo.find() (查看foo表数据)
db.foo.findOne() (查询foo表第一条数据)
db.foo.find({‘a’:1}) (条件查询foo表数据)
db.foo.find().pretty() (以格式化的方式来显示所有文档)
db.foo.find({‘a’:{KaTeX parse error: Expected 'EOF', got '}' at position 7: lte:20}̲}) (小于等于20的数据…lt:30,$gt:10}}) (大于10小于30的数据)
db.foo.remove({‘a’:‘1’}) (删除某一条数据)
db.foo.remove({}) (全表删除)
db.foo.drop() (删除集合/表foo)
db.dropDatabase() (切记要先切换到要删除的数据库)
exit

五、关闭
a、ctrl+c
b、客户端:

use admin
db.shutdownServer()
c、命令行:
mongod --shutdown --dbpath /database/mongodb/data/

六、Mongodb设置密码
mongodb密码和传统数据如mysql等有些区别:
mongoDB的用户分为两种,一种是admin用户,另一种是特定数据库用户。admin用户拥有最高的权限,所有数据库db都需要设置密码,即便是一个admin用户,授权也必须在admin数据库下进行,而不能在其他数据库下进行。

mongodb设置管理用户和密码:

1.show dbs
  
2.use admin 进入admin数据库

3.创建管理员账户(也可以不设置管理员直接设置test数据库的账号)
  db.createUser({user:"admin",pwd:"admin123",roles:[{role:"userAdminAnyDatabase",db: "admin"}]})
  mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。

4.验证第3步用户添加是否成功
  db.auth("admin", "admin123") 如果返回1,则表示成功。
  exit退出系统
  db.auth()方法理解为用户的验证功能

5.修改配置
  linux: vi /opt/mongodb/bin/mongodb.conf
  添加
  auth=true
  重启mongodb: mongod --config /opt/mongodb/bin/mongodb.conf

  Windows创建mongod.conf(windows不支持fork属性)
    dbpath=D:\Program Files\MongoDB\data\db
logpath=D:\Program Files\MongoDB\data\log\MongoDB.log
logappend=true
bind_ip=0.0.0.0   #去除绑定本机访问,4.x以上默认127.0.0.1
port=27017
master=true
auth=true 
  重启:mongod -f D:\mongod.conf(中间不能有中文空格,启动后进程占用)
      
6.进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号
  use admin
  db.auth("admin", "admin123")

7.新建你需要管理的mongodb数据的账号密码。
  use test
  db.createUser({user:"test",pwd:"test",roles:[{role:"dbOwner",db:"test"}]})

  rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等

8.新建数据库读写账户
  use test
  db.createUser({user:"testrw",pwd:"testrw",roles:[{role:"readWrite",db:"test"}]})

  该用户用于该数据的读写,只拥有读写权限。

9.现在数据的用户名和密码就建好了。
  yml可以使用:mongodb://testrw:testrw@localhost/test来连接(springboot)

使用NoSQLBooster连接MongoDB:
1、没有密码可以直接点击工具栏Connect下拉框选择From URI连接
2、有密码直接点击工具类的Connect弹出对话框->Create
a、Basic选项卡输入ip、port、name
b、Authentication选择Mode为Basic,输入数据库、用户、密码
c、Default Database可以输入要连接的数据库或者不输入连接所有数据库

七、程序:
2.x:始终false?
boolean auth = db.authenticate(“testrw”, “testrw”.toCharArray());

3.x:
String url = “mongodb://testrw:testrw@127.0.0.1:27017/test?AutoConnectRetry=true”;
MongoClientURI uri = new MongoClientURI(url);
MongoClient client = new MongoClient(uri);
return client.getDB(“test”);

<dependency>
  <groupId>org.mongodb</groupId>
  <artifactId>mongo-java-driver</artifactId>
  <version>3.8.2</version>
</dependency>
<dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>mongodb-driver</artifactId>
   <version>3.8.2</version>
</dependency>
<dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>bson</artifactId>
   <version>3.8.2</version>
</dependency>


SpringBoot:MongoTemplate | MongoRepository<*.class,id>
pom.xml
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

application.yml
spring: 
  data:
    mongodb:      
      uri: mongodb://localhost:27017/test
     #uri: mongodb://testrw:testrw@localhost:27017/test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值