安装社区版本:Mongodb 4.4
windows版本: win10

1 windows 安装mongodb

Mongodb 下载地址: https://www.mongodb.com/try/download/community
windwos直接下载,在安装界面配置数据目录和log目录,然后下一步即可。我们可以不安装MongoDB Compass.
安装完成后mongodb应该就已经在后台运行了。
测试访问mongodb默认端口(localhost:27017),出现以下界面说明mongodb已经安装成功。

mongodb linux安装 mongodb4.4安装_mongodb


使用mongodb compass 也可以进行测试,直接点击连接就可以使用该GUI工具

mongodb linux安装 mongodb4.4安装_mongodb_02

mongodb linux安装 mongodb4.4安装_Database_03


同样可以使用mongodb compass 创建对应地数据库。

2 连接mongodb 数据库

将mongodb 安装路径配置为windows 环境变量中。
比如默认安装目录为:C:\Program Files\MongoDB\Server\4.4\bin

mongodb linux安装 mongodb4.4安装_数据库_04

进入windows 命令行,通过命令行启动mongodb服务器:
使用mongodb shell 连接数据库

mongo --host localhost --port 27017

mongodb linux安装 mongodb4.4安装_Database_05


然后就直接连接到我们1.1 中安装好地mongodb 实例了。执行show dbs 命令可以看到默认创建地数据库

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

3 配置mongodb

因为mongodb 默认运行环境为安全,即运行在内网环境中外网无法访问,所以安全模式是默认没有开启的。
此时mongodb 跑在默认端口,且没有管理员。所以我们这里需要对它进行一定地配置。
参照 https://docs.mongodb.com/manual/core/authentication/ 中进行配置

3.1 配置数据库管理员

1 首先配置mongodb创建一个管理员(具有所有数据库的读写管理权限及用户管理权限)

当mongodb安装后会默认创建admin数据库,在db shell 中执行以下命令:

use admin
db.createUser(
   {
     user: "MongoDBAdmin",
     pwd: "admin89456",
     roles:
       [
         { role: "dbAdminAnyDatabase", db: "admin" },
         { role: "userAdminAnyDatabase", db: "admin" },
       ]
   }
)

执行成功后将为admin将在admin数据库中创建 MongoDBAdmin 在这个User 且密码为admin89456。

关于role地参数类型

1. 数据库用户角色:read、readWrite;(操作指定数据库权限)
2. 数据库管理角色:
	dbAdmin:提供执行管理任务的能力,例如与模式相关的任务,索引和收集统计信息。该角色不授予用户和角色管理特权。
	dbOwner: 数据库所有者可以对数据库执行任何管理操作。这个角色组合由授予的权限readWrite, dbAdmin和userAdmin角色。
	userAdmin: 提供在当前数据库上创建和修改角色和用户的功能。由于该userAdmin角色允许用户向任何用户(包括他们自己)授予任何特权
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:
	backup:提供备份数据所需的最小特权 
	restore:
5. 所有数据库角色:
	readAnyDatabase:提供与和read以外的所有数据库相同的只读特权。
	readWriteAnyDatabase: 提供与readWrite所有数据库(local和除外)相同的特权config
	userAdminAnyDatabase: 提供对用户管理操作的访问, 与和 userAdmin上的所有数据库相同
	dbAdminAnyDatabase: 提供与dbAdmin所有数据库(local和除外)相同的特权config
6. 超级用户角色:root

参照官网配置说明 修改mongodb配置 安装路径\bin\mongod.cfg ,打开security地选项并重启:

security:
   authorization: enabled

因为默认安装地情况下,mongodb 已经作为服务被安装到了windows中且服务名是MongoDB。
所以我们可以使用下面地命令重启mongodb:(这里cmd需要以管理员身份启动)

net stop MongoDB
net start MongoDB

这里再次尝试对数据库进行操作 mongodb提示没有权限

mongodb linux安装 mongodb4.4安装_windows_06

3.2 修改mongodb端口并启用ip限制

同样修改 安装路径\bin\mongod.cfg 中

net:
  port: 28115
  bindIp: 127.0.0.1

修改port 修改监听的默认端口

修改bindIp 可以实现系统网络过滤提供的访问控制

并重启mongodb

net stop MongoDB
net start MongoDB

mongodb linux安装 mongodb4.4安装_windows_07

3.3 创建业务数据库并配置

现在使用我们创建的管理员账号连接登录 并创建对应的业务数据库

mongo --username MongoDBAdmin --password admin89456 --authenticationDatabase admin --host localhost --port 28115
  • authenticationDatabase : 验证数据库
  • username: 验证用户名
  • password: 用户密码
  • host: mongodb地址
  • port: mongodb端口

创建数据库->创建user_dev collection -> 插入测试数据

use dev
 db.createCollection("user_dev")
 db.user_dev.insertOne({"name": "test_user"})

mongodb linux安装 mongodb4.4安装_mongodb_08

这样就完成开发数据库的创建,测试collections的创建及测试数据导入

3.4 创建业务数据库管理员

创建业务数据库管理员

use dev
db.createUser(
   {
     user: "DevdbAdmin",
     pwd: "admin42434",
     roles: [ "dbOwner" ]
   }
)

使用业务数据库管理员账户创建对应代码开发用户(仅具有该数据库读写权限):

mongo --username DevdbAdmin --password admin42434 --authenticationDatabase dev --host localhost --port 28115
use dev
db.createUser(
   {
     user: "DevdbUser",
     pwd: "User85431",
     roles: [ "readWrite" ]
   }
)

使用开发用户进行测试

mongo --username DevdbUser --password User85431 --authenticationDatabase dev --host localhost --port 28115
use dev
db.user_dev.insertOne({"name": "dev_user"})
db.user_dev.find()

mongodb linux安装 mongodb4.4安装_Database_09

到这里就所有的环境已经准备完毕了

4 关于mongodb 运维

https://docs.mongodb.com/master/administration/