Mac环境mongoDB 和 配置详细教程

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。

1. 官网下载地址 :

https://www.mongodb.com/(官网的下载速度慢)或者直接下载我这里的https://download.csdn.net/download/feixin369/89666669(1积分)
下载社区版,解压,解压后重命名为 mongodb (哈哈哈,大家都这么重命名的)

2. 安装位置

安装没有固定位置,但是一般都放在 /usr/local 下面, 注: mac 的/usr/local 对用户时隐藏的,可以在访达中使用 command+shift+G 搜索进入


3.配置环境变量

在终端上打开环境变量 

open .bash_profile  

这里很多 mac 一开始是没有这个文件的,没有的话就在终端上创建一个 touch .bash_profile

添加环境配置,这样以后就不用每次都 cd 到 mongodb 的 bin 目录开启服务了(注意: 这里 /usr/local/mongodb/bin 为你安装 mongodb 的目录)
增加如下代码:

export PATH=${PATH}:/usr/local/mongodb/bin

然后执行

 source .bash_profile

运行命令,即可查看 mongodb 版本
 mongod -version
显示如下,就算成功了:

linwinwin@LinwinwindeMacBook-Pro etc % mongod -version
db version v5.0.9
Build Info: {
    "version": "5.0.9",
    "gitVersion": "6f7dae919422dcd7f4892c10ff20cdc721ad00e6",
    "modules": [],
    "allocator": "system",
    "environment": {
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
linwinwin@LinwinwindeMacBook-Pro etc % 


此时新开一个终端输入 mongon -version 应该也是可以运行命令的,但是我遇到了一个一个问题就是会报 zsh: command not found xxx 的错误
解决方案:是将 .bash_profile 里面的配置放入到 .zshrc 文件中就可以了,步骤和上面一样
1.打开终端输入 open .zshrc (没有就 touch .zshrc 创建一个)
2.把 .bash_profile 的配置放进来(就是 export PATH 之类的)
3. source .zshrc 就ok了


4. 基本配置

如果和我一样是从官网上直接下载的,会发现在文件路径下是没有关于日志及数据存放的位置的,所以要新建两个文件夹(log:日志存储、data:数据存放)。这两个文件夹存放的位置任意的,但是为了方便查找,我们还是放在/usr/local/mongodb下。

进入 mongodb 目录

cd /usr/local/mongodb


创建 data 和 log 文件夹(名字可以是其他的,不强制)

mkdir data log


由于读写权限的问题, 需要给这两个文件夹赋予读写权限, 这里 linwinwin 是我的用户名,要替换成你自己的

sudo chown linwinwin /usr/local/mongodb/data
sudo chown linwinwin /usr/local/mongodb/log


5.启动

⚠️当前的位置是/usr/local/mongodb, 所以这里的 --dbpath 是 data; --fork表示在后台运行  --logappend 表示追加

mongod --fork -dbpath data --logpath log/mongo.log --logappend


// 出现如下,则表示启动成功

about to fork child process, waiting until server is ready for connections.
forked process: 4649
child process started successfully, parent exiting


// 新开一个终端窗口 输入命令 mongo
mongo
// 展示一个箭头则表示启动成功
// 打开浏览器输入: http://127.0.0.1:27017/
It looks like you are trying to access MongoDB over HTTP on the native driver port.
// 出现上面情况就算成功了启动成功


6.关闭mongodb 服务

简单暴力的ctrl + c
//1.切换到管理员
use admin
// 2.运行命令(参数可写可不写)
db.shutdownServer({force:true});
// 展示如下:关闭成功
server should be down...
// 通过浏览器访问 http://127.0.0.1:27017/  拒绝连接

这里关闭服务如果是非正常关闭的话(如直接删除终端等),下一次再开启mongodb时会报错的,会报一个 ERROR: child process failed, exited with error number 100 这类的错误,这个遇到的话自行百度解决,我今天一开始就遇到了:>(弄了我好久)

7.通过配置文件启动


上面那种启动 mongodb 服务端方式太麻烦了,因此可以 配置一个启动文件,我们在 mongodb 文件夹中新建 etc 文件夹, 在 etc 文件中新建 mongodb.conf 文件

//在mongodb 文件夹下
1.mkdir etc
//在 etc 文件中新建 mongodb.conf 
2. touch mongodb.conf
// 配置 mongodb.conf 
3. vim mongodb.conf
// 在 mongodb.conf 中配置如下信息
 


dbpath=/usr/local/mongodb/data

#日志输出文件路径
logpath=/usr/local/mongodb/log/mongo.log

#错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
logappend=true

#启用日志文件,默认启用
#journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=false

#是否后台启动,有这个参数,就可以实现后台运行
fork=true

#端口号 默认为27017
port=27017

#指定存储引擎(默认不需要指定)
#storageEngine=mmapv1


# auth=true


配置好上面的上面的文件就可以用配置文件启动服务啦

//启动命令
1.mongod -f /usr/local/mongodb/etc/mongo.conf 
//启动成功,可在浏览器中验证
2.关闭服务时,按照上面的方式去关闭

//!!!但是,如果在上面配置了 鉴权 auth:true 就会 有问题。我们想关闭的时候会报错,告知我们没有权限
//解决很简单,没有权限就赋予一个权限
//如果是新安装的mongodb,默认是没有用户的,所以我们来创建用户

// 创建用户
db.createUser({user: 'root', pwd: '123456', roles:[{role:'root',db:'admin'}]})
// 登陆用户
db.auth('root','123456')
// 显示 1 说明登陆成功
// 赋予权限
db.grantRolesToUser('root', [{role: 'hostManager',db:'admin'}])
// 关闭服务
db.shutdownServer({force:true});
//但是 设置了 auth:true 的话后面使用 mongodump 备份数据和 使用 mongorestore 恢复数据也是不一样的,会有问题,以及在 使用 studio 3T 可视化工具连接服务器时也有有问题,这里展示下开启鉴权时使用 studio 3T 可视化工具连接服务器报的错误


 

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weifont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值