MongoDB的安装与配置

  • 2018-09-13
  • 572
  • 0

1. windows配置MongoDB

1.1 安装

MongoDB官网下载,安装时自定义安装路径,其他默认。

假如我们安装到:H:/MongoDB中,完成后进入该目录新建一个data文件夹作为数据库存放路径和log文件夹存放日志文件。

1.2 创建配置

配置文件路径:

# windows配置路径需要根据自己的安装路径,例如:
windows: `H:\MongoDB\bind\mongod.cfg`

linux: `/etc/mongod.cfg`

配置文件mongod.cfg主要内容:

storage:
  dbPath: H:\MongoDB\data
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path:  H:\MongoDB\log\mongod.log

net:
  port: 27017
  bindIp: 127.0.0.1

# 启用认证
#security:
#  authorization: enabled

1.3 sc命令创建MongoDB,如果安装时自动创建的无法运行则删除后再手动创建

创建命令:

sc.exe create MongoDB binpath="H:\MongoDB\bin\mongod.exe --service --config=H:\MongoDB\bin\mongod.cfg"

删除命令:

sc.exe delete MongoDB

1.4 启动服务和关闭服务

net start MongoDB
##############运行结果#############
#>MongoDB 服务正在启动
#>MongoDB 服务已经启动成功
net Stop MongoDB
##############运行结果#############
#>MongoDB 服务正在停止
#>MongoDB 服务已经停止成功

2. 打开MongoDB权限认证

MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产生安全风险,被利用此配置漏洞,入侵数据库。

2.1 配置文件

mongodb带访问认证的配置文件路径H:\MongoDB\bin\mongod.cfg,文件主要内容:

storage:
  dbPath: H:\MongoDB\data
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path:  H:\MongoDB\log\mongod.log

net:
  port: 27017
  bindIp: 127.0.0.1

# 打开认证
security:
  authorization: enabled

2.2 创建管理员

使用 mongod 启动数据库, 新建终端:

mongod -f H:\MongoDB\bin\mongod.cfg

运行mongodb时需要加上配置文件或自定义参数。

新建另一个终端,运行下面命令:

mongo
use admin
db.createUser(
  {
    user: "root",
    pwd: "root",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

管理员创建成功,用户名:root 密码:root

2.3 创建用户

在2.2基础上,继续执行

db.auth("adminuser", "adminpass")
# 输出 1 表示验证成功

db.createUser(
  {
    user: "testuser",
    pwd: "testpass",
    roles: [ { role: "readWrite", db: "test_database" },
             { role: "read", db: "bar" } ]
  }
)

用户创建成功,用户testuser, 密码testpass,

用户对数据库test_database有读写权限,对bar只有读权限

2.4 MongoDB用户验证

启动带访问控制的 Mongodb, 新建终端:

mongod -f H:\MongoDB\bin\mongod.cfg

现在有两种方式进行用户身份的验证

第一种 (类似 MySql) 客户端连接时,指定用户名,密码,db名称

mongo -f H:\MongoDB\bin\mongod.cfg -u "testuser" -p "testpass" --authenticationDatabase "admin"

第二种 客户端连接后,再进行验证

mongo

# 认证用户需要在admin数据库下,认证之后再切换到用户数据库
use admin

db.auth("testuser", "testpass")

use test_database
show collections

2.5 用户的删除

同上的方式打开Mongo终端, 并切换到admin数据库

use admin

db.dropUser('test')
# 输出true表示成功删除

2.5 URL访问方式

生产中常用 URI 形式对数据库进行连接

mongodb://127.0.0.1:27017/test_database

添加用户名密码验证

mongodb://testuser:testpass@127.0.0.1:27017/test_database

2.6 内建用户

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

3. MongoDB可视化图形界面推荐:adminMongo

安装 adminMongo 需要 node.js环境,node.js官网安装后,Github下载adminMongo,解压后到解压目录运行下命令:

# 安装
npm i
# 运行。每次调用此命令即可运行
npm start

版权声明: 本网站所有资源采用BY-NC-SA 4.0协议进行授权,转载应当以相同方式注明文章来自:MongoDB的安装与配置 - 一方的天地

评论

还没有任何评论,你来说两句吧

发表评论

陕ICP备18010914号
知识共享许可协议
本作品由一方天地采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资源请尽快联系站长,本站会在24h内删除有争议的资源。 -