[toc]
Mongodb4.2 安装及配置
Windows MongoDB4.2.0安装配置教程
下载(地址如下)
安装MongoDB及创建文件夹和文件
启动MongoDB
设置管理员账号(重新打开一个cmd窗口)
通过配置文件启动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 "*"