Mac下安装配置mongodb并创建用户的方法

时间:2021-09-04 06:56:05

前言

mongodb数据库相信不用多介绍,大家都不陌生,好久之前曾经安装过mongodb,在一个偶然的情况下被一个大佬直接登陆进来了,刚开始惊呼还有这种操作,后来才发现自己并没有给数据库上锁,并且在安装完mongodb默认启动的时候默认是任何ip都可以不需要密码直接访问的。

好了,废话不多说,开始今天的正文

安装mongodb

安装mongodb有三种方式:

1、直接下载安装

MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包。

下载地址:[https://www.mongodb.com/download-center#community][1]

2、通过mac自带的curl安装

?
1
2
3
4
5
6
7
8
# 进入 /usr/local
cd /usr/local
# 下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.4.2.tgz
# 解压
sudo tar -zxvf mongodb-osx-x86_64-3.4.2.tgz
# 重命名为 mongodb 目录
sudo mv mongodb-osx-x86_64-3.4.2 mongodb

3、通过brew安装

?
1
sudo brew install mongodb

新建日志文件,mongodb配置文件和数据库存放路径

(如果以下的文件夹创建不成功或者提示没有权限的话在命令前面加上sudo)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#进入mac根目录
cd /mongoData
 
#新建文件夹mongoData
mkdir mongoData
 
#新建三个文件夹分别是db(存放数据库数据),etc(mongodb配置文件),logs(日志文件)
mkdir db etc logs
 
在etc和log下分别创建配置文件和日志文件
cd etc
touch mongo.conf
cd logs
touch mongo.log

接下来修改mongodb的配置文件

?
1
2
#vim编辑配置文件
vim mongo.conf

mongdb的配置文件字段有好多,我展示一下我的配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#数据库路径
dbpath=/mongoData/db/
 
#日志输出文件路径
logpath=/mongoData/logs/mongo.log
 
#错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
logappend=true
 
#启用日志文件,默认启用
journal=true
 
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=false
 
#是否后台启动,有这个参数,就可以实现后台运行
fork=true
 
#端口号 默认为27017
port=27017
 
#指定存储引擎(默认不需要指定)
#storageEngine=mmapv1
 
#开启认证
auth = true

将上面的配置字段复制进去并且保存

启动mongodb

?
1
2
3
4
5
#进入mongdb安装目录
cd /usr/local/mongodb/bin
 
#通过配置文件的方式启动mongdb
./mongod -f /mongoData/etc/mongo.conf

如果出现successful就表示服务已经启动成功

配置超级用户和用户

?
1
2
3
4
5
6
7
8
#进入mongodb
./mongo
 
#使用admin数据库
use admin
 
#查看有所有数据库
show dbs

不出意外的话会提示没有权限,因为我们是以配置文件启动的mongodb,并且配置文件中我们开启了认证将auth字段设置成了true

这个时候我们就应该开始配置用户

创建超级管理员用户

?
1
2
3
4
use admin
db.createUser({user:"admin",pwd:"password",roles:["root"]}) //admin这个数据库是系统自带的数据库,他的用户可以访问任何其他数据库的数据,也叫做超级管理员
db.auth("admin","password") // => 1 表示验证通过 0表示验证失败
show dbs //=>admin 0.000GB blog 0.000GB config 0.000GB

这样就展示出所有的数据库了

创建普通用户(某个数据库的用户)

?
1
2
3
4
5
use admin //=>进入admin数据库
db.auth("admin","password") //=> 通过超级管理员验证
use blog
db.createUser({user: "blog", pwd: "password", roles: [{ role: "dbOwner", db: "blog" }]})
show dbs => admin 0.000GB blog 0.000GB config 0.000GB local 0.000GB

这样就创建了单独关于blog这个数据库的账户了,账号是blog,密码是password

这里我们要注意一点,给创建普通数据库用户的时候要是在超级管理员验证完之后创建

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://segmentfault.com/a/1190000014740252