mac上安装MongoDB
2021/11/19 19:15:38
本文主要是介绍mac上安装MongoDB,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MongoDB - Mac上安装和配置MongoDB
Mac上安装和配置MongoDB
安装MongoDB#
官网地址:https://www.mongodb.com/try/download/community,下载本地版MongoDb,格式为tgz。
把解压后的文件夹放到 /usr/local 下
执行
open -e .bash_profile
配置环境变量,文件中加入
export PATH=${PATH}:/usr/local/mongodb-macos-x86_64-4.4.1/bin
保存后关闭文件,执行以下命令使环境变量生效
source .bash_profile
执行 mongod -version ,出现如下信息则证明安装成功
创建数据存储路径#
由于MongoDB的默认存储路径使根目录下的 /data/db ,而这个文件夹并不会由MongoDB自动创建,所以需要我们手动创建文件夹。
但是Mac OS引入了系统完整性保护(SIP)机制,无法在/、/usr目录下新建文件,所以我们需要通过软连接的方式创建MongoDB数据存储文件夹。
新建/etc/synthetic.conf文件:
sudo vim /etc/synthetic.conf
在文件里面添加目录的映射,每一行都相当于创建一个软链接,一共包含三列。第一列表示根目录/下的目录名,第二列为一个tab键\t(不能是空格),第三列为自己新建的目录:
data /Users/helios_fz/mongodb-data
上述配置相当于
ln -s /Users/helios_fz/mongodb-data /data
重启Mac,会看到根目录下多了一个/data目录。
配置用户权限#
先后台启动MongoDB
mongod &
再重新打开一个终端,执行mongo。
MongoDB安装好后第一次进入是不需要密码的,也没有任何用户。现在需要创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以要在指定的库里授权,也必须也在指定的库里验证(auth)。
终端输入 mongo 进入MongoDB控制台,执行以下命令创建管理用户:
use admin db.createUser( {user: "admin",pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
上述命令中,user是用户名,pwd是密码,roles是指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。
role里的角色可以选:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root(dbOwner 、userAdmin、userAdminAnyDatabase也间接或直接提供了系统超级用户的访问)
- 内部角色:__system
角色具体解释:
- read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
刚建立了 userAdminAnyDatabase 角色,用来管理用户,可以通过这个角色来创建、删除用户。
创建用户之后,重启MongoDB。通过 ps -ef | grep mongo 找到MongoDB进程号,然后"kill -9 进程号"关掉数据库。
通过下列命令启动MongoDB,开启认证:
mongod --auth &
常用命令#
show dbs #显示数据库列表 show collections #显示当前数据库中的集合(类似关系数据库中的表) show users #显示用户 use <db name> #切换当前数据库,如果数据库不存在则创建数据库。 db.help() #显示数据库操作命令,里面有很多的命令 db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 db.foo.find() #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) db.foo.find( { a : 1 } ) #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1 db.dropDatabase() #删除当前使用数据库 db.cloneDatabase("127.0.0.1") #将指定机器上的数据库的数据克隆到当前数据库 db.copyDatabase("mydb", "temp", "127.0.0.1") #将本机的mydb的数据复制到temp数据库中 db.repairDatabase() #修复当前数据库 db.getName() #查看当前使用的数据库,也可以直接用db db.stats() #显示当前db状态 db.version() #当前db版本 db.getMongo() #查看当前db的链接机器地址 db.serverStatus() #查看数据库服务器的状态
MongoDB没有创建数据库的命令,如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection(‘user’)),这样就可以创建一个名叫“myTest”的数据库。
其他配置#
开启外部访问
mongod --bind_ip=0.0.0.0 &
开启访问认证
mongod --auth &
忘记密码后的重置#
正常启动MongoDB,并进入控制台,删除之前的用户。
use admin db.system.users.find() db.system.users.remove({})
接下来就可以重复创建用户的操作了。
转自:https://www.cnblogs.com/helios-fz/p/13685060.html
这篇关于mac上安装MongoDB的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享