Mongodb4.2 安装及配置 2020-08-14

[toc]

Mongodb4.2 安装及配置

Windows MongoDB4.2.0安装配置教程

  1. 下载(地址如下)

  2. 安装MongoDB及创建文件夹和文件

  3. 启动MongoDB

  4. 设置管理员账号(重新打开一个cmd窗口)

  5. 通过配置文件启动MongoDB服务

1、下载(地址如下)

https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.0-signed.msi

安装时注意:取消勾选 「Install MonogoDB Compass」,后点击「Next」。MonogoDB Compass是连接mongodb库的客户端。

2、安装MongoDB及创建文件夹和文件

  • 直接双击软件运行安装

  • 安装过程中,你可以通过点击 “Custom(自定义)” 按钮来设置你的安装目录。(我是安装在D:\MongoDB目录下的)

  • 在D:\MongoDB目录下创建data、log,data目录下创建db文件夹,log目录下创建mongod.log文件(有则无需创建)

3、启动MongoDB

进入D:\MongoDB\bin目录下,在地址框输入cmd命令回车,然后输入如下命令启动MongoDB

mongod.exe --dbpath D:\MongoDB\data\db

4、设置管理员账号(重新打开一个cmd窗口)

进入mongo

mongo --port 27017

创建管理员用户

# 进入数据库
use admin

# 创建一个用户名root,密码123456的管理员用户
db.createUser(
  {
    user: "root",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

退出Mongo

# 退出mongo
exit

# 使用用户名密码登录
mongo --port 27017 -u root -p 123456 --authenticationDatabase admin

5、通过配置文件启动MongoDB服务

进入D:\MongoDB\bin 目录下,打开mongod.cfg文件,添加
security:
authorization: enabled ,保存

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: D:\MongoDB\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  D:\MongoDB\log\mongod.log

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1
  bindIp: 0.0.0.0
# security:是开启认证,必须通过用户名和密码才能登陆系统
security:
  authorization: enabled

#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:
#mp:

以管理员启动CMD,进入到D:\MongoDB\bin目录下

.\mongod.exe --config D:\MongoDB\bin\mongod.cfg --install --serviceName "MongoDB"

#如果报错:
Unrecognized option: mp
try 'mongod.exe --help' for more information
#打开bin\mongod.cfg,注释最后一行mp:
#mp:

启动MongoDB服务

net start MongoDB
net stop MongoDB #关闭Mongo服务

验证权限的两种方式:

  • 连接实例的时候就验证
  • 连接实例之后,使用数据库的时候验证

尝试登录Mongo: 连接实例的时候就验证

mongo --port 27017 -u root -p 123456 --authenticationDatabase admin

如果尝试登录再次失败:

# 1、启动mongodb
# 启动方式:进入D:\MongoDB\bin目录下,在地址框输入cmd命令回车,然后输入如下命令启动MongoDB
mongod.exe --dbpath D:\MongoDB\data\db

# 进入mongo,重新打开一个cmd窗口
mongo --port 27017

# 切换至admin超级管理员
use admin

# 创建一个用户名root,密码123456的管理员用户
db.createUser(
  {
    user: "root",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

#授权
db.auth("root", "123456" )

#退出mongo
exit

#尝试登录Mongo
mongo --port 27017 -u root -p 123456 --authenticationDatabase admin

尝试登录Mongo: 连接实例之后,使用数据库的时候验证

# 进入mongo,重新打开一个cmd窗口
mongo --port 27017

#验证:返回 1 验证成功
use admin
db.auth("root", "123456" )

6、mongodb 创建新的用户:

# 1、启动mongodb
# 启动方式:进入D:\MongoDB\bin目录下,在地址框输入cmd命令回车,然后输入如下命令启动MongoDB
mongod.exe --dbpath D:\MongoDB\data\db

# 进入mongo,重新打开一个cmd窗口
mongo --port 27017

#验证:返回 1 验证成功
use admin
db.auth("root", "123456" )
#验证成功后就可以给其他数据库创建用户授权
#创建或切换库 omsdb,此处创建验证库
use omsdb
#创建用户,授权和绑定库,验证库为上面创建的的omsdb
db.createUser(
  {
    user: "oms",
    pwd: "Passw0rd",
    roles: [ { role: "dbOwner", db: "omsdb" } ]
  }
)

#创建成功后断开实例连接
exit

#测试新创建的用户 登录验证
mongo --port 27017 -u oms -p Passw0rd --authenticationDatabase omsdb

#创建/切换库至dukedb
use omsdb

#查看当前库
db

# 插入一行数据,保证工具能够连接mongo
db.foo.insert( { x: 1, y: 1 } )

项目应用:

# 用 超级用户登录 Robo 连接mongo库
# 执行命令-切换至admin库
use admin
db.auth("admin", "pass")
# 创建用户
db.createUser(
  {
    user: "test",
    pwd: "pass",
    roles: [ { role: "dbOwner", db: "test" } ]
  }
)

# 使用新创建的用户登录
用户密码:test/pass 权限认证库:admin

Mongo查看操作:

# 进入mongo,重新打开一个cmd窗口
mongo --port 27017

#权限验证
use admin
db.auth('root','123456')

#查看全局所有账户
db.system.users.find().pretty()

#查看当前库下所有账户
show users
# 删除当前库的某个用户
db.dropUser("username")

#查看所有库
show dbs
# 删除当前库 查看:show dbs,db  
db
db.dropDatabase()   # 需要用户有删除库的权限

7、注意:Robo 3T-1.3才能支持MongoDB 4.X

Robo 3T 连接报错:

#报错信息
Error: Network error while attempting to run command 'saslStart' on host '12

#解决方式:
Robo 3T-1.3才能支持MongoDB 4.X

#安装Robo 3T-1.3
https://www.robomongo.org/download

8、数据库备份还原

# 备份库
# 不开启权限验证备份库
mongodump -h 127.0.0.1:27017 -u dbname -p pass --archive=C:\DatabaseBackup\mongo\dbname_20200511.gz --gzip --db dbname
# 开启权限验证备份库
mongodump -h 127.0.0.1:27017 --authenticationDatabase admin -u dbname -p dist2019 --archive=C:\DatabaseBackup\mongo\dbname_20200511.gz --gzip --db dbname

# 还原库
# 新库与旧库名称一致情况
mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin -u username -p pass --archive=C:\DatabaseBackup\mongo\dbname_20200511.gz --gzip --db dbname
# 新库与旧库名不一致情况
# 关闭mongo认证权限导入备份数据库方式  旧库:dbname  新库:new_dbname
mongorestore -h 127.0.0.1:27017 --username=new_username --password=pass --gzip --archive=C:\DatabaseBackup\mongo\dbname_20200511.gz --nsFrom "dbname.*" --nsTo "new_dbname.*"  --nsInclude "*"
# 开启mongo认证权限导入备份数据库方式
mongorestore -h 127.0.0.1:27017 --username=new_username --password=pass --authenticationDatabase=admin --gzip --archive=C:\DatabaseBackup\mongo\dbname_20200511.gz --nsFrom "dbname.*" --nsTo "new_dbname.*"  --nsInclude "*"