当前位置:网站首页>本机部署一个MongoDB单节点服务器,并启用auth验证、开启oplog
本机部署一个MongoDB单节点服务器,并启用auth验证、开启oplog
2022-06-27 20:15:00 【墨天轮】
目的
本机部署一个MongoDB单节点服务器,并启用auth验证、开启oplog,用于日常测试。
版本:4.0.9
本机系统:MacOs
安装
1、使用curl命令安装。
# 进入 /usr/local
cd /usr/local
# 下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
# 解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
# 重命名为 mongodb 目录
sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
2、把 MongoDB的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:
export PATH=/usr/local/mongodb/bin:$PATH
3、创建日志及数据存放的目录:
数据存放路径:
sudo mkdir -p /usr/local/var/mongodb
日志文件路径:
sudo mkdir -p /usr/local/var/log/mongodb
授予当前用户对这两个目录的读写权限:
sudo chown username /usr/local/var/mongodb
sudo chown username /usr/local/var/log/mongodb
4、后台启动 mongodb:
mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork
5、查看 mongod 服务是否启动:
ps aux | grep -v grep | grep mongod
6、启动后我们可以使用 mongo 命令打开一个终端:
$ cd /usr/local/mongodb/bin
$ ./mongo
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
启用auth,使用密码登录
启动mongod服务后,使用客户端登陆,首次登陆不需要密码。
./mongo
接下来创建超级用户root,密码是root:
db.createUser({user:"root",pwd:"root",roles:[{"role":"userAdmin","db":"admin"},{"role":"root","db":"admin"},{"role":"userAdminAnyDatabase","db":"admin"}]})
MongoDB中built-in角色如下:其中built-role有如下:
Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 root:只在admin数据库中可用。超级账号,超级权限(本次创建的就是超级账号)
加上--auth参数,重启mongo。--auth参数用来控制用户对数据库资源和操作的访问。启用授权后,MongoDB要求所有客户端首先进行身份验证,以确定客户端的访问权限。
mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork --auth
3.使用账户和密码登录。
mongo -u root -p root localhost:27017/admin
或者
mongo "mongodb://root:[email protected]:27019/admin"
单节点开启Oplog
MongoDB的副本集架构中有一个数据结构oplog,里面存储了节点所有变更操作。但是单实例没有这个结构,那么单台MongoDB实例怎么开启oplog?
方法:
需要以副本集方式启动实例,并在local数据库或admin数据库执行初始化副本集的脚本,rs.initiate()。
以副本集方式启动实例:
启动命令中,增加replSet='replset_name' 示例:
./mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork --auth --bind_ip 0.0.0.0 --replSet='test'
在local数据库或admin数据库执行初始化副本集的脚本。
语法:
rs.initiate({ _id: "replset_name", members: [{_id:0,host:"ServerIP:MongoDBPort"}]})
示例:
rs.initiate({ _id: "test", members: [{_id:0,host:"localhost:27017"}]})
注:初始化完成之后,副本集中唯一的节点,可能短时间显示为SECONDARY或OTHER。一般而言,稍等一会,就会自然恢复为primary,无需人工干预。
总结
我们可以使用curl安装MongoDB单节点服务器,开启密码验证,需要打开--auth参数。如果想要开启oplog,则需要以副本集方式启动实例,并在local数据库或admin数据库执行初始化副本集的脚本,rs.initiate()。

点个“赞 or 在看” 你最好看!

谢谢各位老板!!!
边栏推荐
猜你喜欢

爬虫笔记(1)- urllib

Penetration learning - shooting range chapter -dvwa shooting range detailed introduction (continuous updating - currently only the SQL injection part is updated)

Solution to the error of VMware tool plug-in installed in Windows 8.1 system

Design of STM32 and rc522 simple bus card system

初识C语言 第二弹

Spark bug practice (including bug:classcastexception; connectexception; NoClassDefFoundError; runtimeException, etc.)

average-population-of-each-continent

STM32与RC522简单公交卡系统的设计

Spatial relation query and graph based query in secondary development of ArcGIS Engine

Solve the problem that the virtual machine cannot be connected locally
随机推荐
Service gateway of microservices
Use logrotate to automatically cut the website logs of the pagoda
Improving deep neural networks: hyperparametric debugging, regularization and optimization (III) - hyperparametric debugging, batch regularization and program framework
跟着存档教程动手学RNAseq分析(二)
MapReduce初级编程实践
"I make the world cooler" 2022 Huaqing vision R & D product launch was a complete success
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)
7 jours d'apprentissage de la programmation simultanée go 7 jours de programmation simultanée go Language Atomic Atomic Atomic actual Operation contains ABA Problems
网易云“情怀”底牌失守
Dialogue with Qiao Xinyu: the user is the product manager of Wei brand, and zero anxiety defines luxury
Azure Kinect DK 实现三维重建 (PC非实时版)
【经典干货书】数据科学中的信息理论方法,561页pdf
【你真的会用ES吗】ES基础介绍(二)
雪糕还是雪“高”?
Gartner focuses on low code development in China how UNIPRO practices "differentiation"
Vue+MySQL实现登录注册案例
Advertising is too "wild", Yoshino "surrenders"
average-population-of-each-continent
[electron] 基础学习
Start the start php