mac上的mongodb安装与使用的踩坑记
好吧,毕设项目还要自己搭后端,搭数据库,以前都是用的 egg
+ mysql
,这次试试没用过的 koa2
+ mongodb
本以为会和以前一样,几下就能弄好,没想到这次掉进坑里了。。。
这次写篇文章记录一下整体流程以及踩过的坑
做毕设的过程中要是遇上新的问题,再补充进来。
参考内容:
- 官方文档
- 菜鸟联盟 - Mac OSX 平台安装 MongoDB
- alicelmx - Mac下安装mongoDB 4.X 及配置方法
- vshpper - zsh与bash设置环境变量的不同点
安装mongodb
2种安装方式
- 下载官方安装包,手动安装
- 使用brew安装
手动安装
可以参考菜鸟联盟的安装流程
# 进入 /usr/local
cd /usr/local
# 下载 (注:下载的版本可以参考官网 https://www.mongodb.com/download-center/community)
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.6.tgz
# 解压
sudo tar -zxvf mongodb-osx-x86_64-4.0.6.tgz
# 重命名为 mongodb 目录sudo mv mongodb-osx-x86_64-4.0.6 mongodb
复制代码
然后第一个坑出现了!
菜鸟联盟上 写的下一步是
export PATH=/usr/local/mongodb/bin:$PATH
复制代码
这样其实没错,不过这是一个临时环境,关闭shell后这个环境就消失了。一个正常人要做的就是配置一个全局环境
然后第二个坑出现了!
如果这时候搜索 mongodb 配置全局变量
,你可能会搜到下面的内容
(1)进入终端(2)vi ~/.bash_profile编辑mongo路径:export PATH=/usr/local/mongodb/bin:$PATH ,然后保存(3) source ~/.bash_profile //保存使配置生效
复制代码
也许你成功了,但我是失败了。我搜出来的基本都是这样的答案。这个问题搞得我莫名其妙的,后来总算找到原因了:
系统默认的终端一般是
bash
,而我使用的是zsh
在zsh中按照上面的流程 只能设置临时的环境变量
如果你还使用了其他的终端,可能配置方法也更不一样,还是要专项输出
既然问题明确了,那么我们要做的事就清楚了:
我们要在zsh中永久设置系统环境变量,zsh在启动的时候 首先会读取~/.zshrc这个配置文件,所以我们可以把环境变量的配置信息放到这个配置文件中
vi ~/.zshrc
添加上 export PATH=/usr/local/mongodb/bin:$PATH
复制代码
大功...尚未告成
brew安装
再说说brew安装
brew安装其实很简单,按照菜鸟教程上的来,就一行命令
sudo brew install mongodb
复制代码
按官网文档来说
In addition to the binaries, the install creates:
- the configuration file (/usr/local/etc/mongod.conf)
- the log directory path (/usr/local/var/log/mongodb)
- the data directory path (/usr/local/var/mongodb)
还会多帮我们添加这些内容
使用
好的,我们现在安装完了。接下来看看怎么使用
第一步,创建数据库存储目录
sudo mkdir -p /data/db
复制代码
mongodb的默认数据库存储地址在 /data/db,这需要我们手动创建
然后我们再启动服务
mongod
复制代码
好的,如果不出意外,你应该成功地 没有启动服务
第三个坑出现了!
你的终端上会有一大堆的内容,其中有一行大概说到 无法操作只读文件/data/db,我截取了一部分内容
exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db, terminating
复制代码
错误原因:对于文件夹 /data/db 没有操作权限,目前这个文件夹只有只读权限
解决办法:
- 修改权限
sudo chomd -R /data/db
- 自己在别处创建一个数据库路径,更改mongoDB数据库路径
我其实一开始就打算把数据库路径放在我随时可见的地方,直接就使用了第二种方法
#首先创建一个数据库存储目录, 我是建在 ~/Documents/mongodb/data
#以后运行的时候,输入下面的命令就ok
mongod --dbpath ~/Documents/mongodb/data
复制代码
当我以为这之后万事大吉了,然后我发现控制台里冒出一大堆的东西,惊了,怎么和菜鸟教程上的完全不一样? 好几次我都以为是又出什么问题了,直到我看了官方文档上的内容
Verify that MongoDB has started successfully by checking the process output for the following line:
[initandlisten] waiting for connections on port 27017
The output should be visible in the terminal or shell window.
You may see non-critical warnings in the process output. As long as you see the log line shown above, you can safely ignore these warnings during your initial evaluation of MongoDB.
大概就是说,如果能看到提示【等待连接27017】,你的数据库服务其实就已经启动了(虽然有一些non-critical warnings)
到这里,数据库就启动完毕了,剩下的要做的就是连接它了。
不得不感叹,写文档的时候思路清晰,顺序进行。 自己当时在解决问题的时候,脑子里简直是一堆s.h.i.t,看过的文档远远不止列出来的那4个。。
转载于:https://juejin.im/post/5c8bd4096fb9a049ca383e1e
mac上的mongodb安装与使用的踩坑记相关推荐
- Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂
1 前言 Kubernetes又简称k8s,是Google开源的容器集群管理系统,最近也是火热.闲来无事(为了发文),捣鼓了一下,在Mac上搭建Kubernetes,遇到一些坑,也记录一下. 另外,D ...
- python下载安装教程mac-教程|如何在mac上为Python安装XGBoost!
原标题:教程|如何在mac上为Python安装XGBoost! 摘要:XGBoost是一个开发非常快速和准确的梯度增强模型的库,它在Kaggle数据科学竞赛中被大量的kaggle选手选用,其中包括两个 ...
- python numpy库安装 mac_教程|如何在mac上为Python安装XGBoost!
原标题:教程|如何在mac上为Python安装XGBoost! 摘要:XGBoost是一个开发非常快速和准确的梯度增强模型的库,它在Kaggle数据科学竞赛中被大量的kaggle选手选用,其中包括两个 ...
- 之前安装的python环境可以删除吗-在Mac上删除自己安装的Python方法
推荐使用 Homebrew 来安装第三方工具.自己安装的python散落在电脑各处,删除起来比较麻烦.今天在此记录一下删除的过程(本人以Python3.6为例). 删除Python 3.6 frame ...
- python安装方法mac_在Mac上删除自己安装的Python方法
推荐使用 Homebrew 来安装第三方工具.自己安装的python散落在电脑各处,删除起来比较麻烦.今天在此记录一下删除的过程(本人以Python3.6为例). 删除Python 3.6 frame ...
- Mac上Logi Options安装问题
Mac上Logi Options安装问题 出现的问题: 一直停留在安装界面(转圈)/安装成功后还是转圈,无法进行下一步,之后闪退 解决方案: 隐私设置-辅助功能 打开 logi options 和 l ...
- mac 上的 redis 安装与使用
mac 上的 redis 安装与使用 安装 通过 homebrew brew install redis 使用 启动 加入启动项 ln -sfv /usr/local/opt/redis/*.plis ...
- Mac OSX 下高效安装 homebrew 及完美避坑姿势
Mac OSX 下高效安装 homebrew 及完美避坑姿势 Homebrew 是什么 Homebrew是 mac的包管理器,仅需执行相应的命令,就能下载安装需要的软件包,可以省掉自己去下载.解压.拖 ...
- 几乎完美安装! NVIDIA Jetson Nano B01 Ubuntu 18.04.3 LTS 的 ROS 安装和菜鸟的踩坑记录【会继续完善】
几乎完美安装! NVIDIA Jetson Nano B01 Ubuntu 18.04.3 LTS 的 ROS 安装和菜鸟的踩坑记录 NVIDIA Jetson Nano B01技术规格 Ubuntu ...
最新文章
- 一个App卖了4亿美元,这家听声识曲公司为何得到Apple的青睐?
- Linux Crontab 安装使用详细说明
- Python分析热门话题“不生孩子的人后来都怎么了”,看看丁克家庭最后都怎么样了...
- 新的生活,新的工作,新的挑战
- 微信小程序 页面递归生成
- 彻底解决--“未能加载文件或程序集“xxx.dll”或它的某一个依赖项”
- Bugzilla的快速入门指南(全网最详细)
- oracle数据库interval使用,Oracle Interval类型
- 亚马逊与独立站的区别,站外引流,私域流量
- 常见开关电源优缺点对比
- 爬虫入门 ---- CSDN查看文章全部评论
- 两个天才黑客:一人在牢狱之灾后退隐江湖,一人蜕变成阿里巴巴“守护神”!...
- layui生产管理系统_分享两款Java Spring框架的开源MES制造执行系统
- 用Python搭建简单自动化报表(漏斗模型)
- use ida6.8 + windbg on win10
- 玩转华为ENSP模拟器系列 | 配置普通NTP对等体模式示例
- 电子天平的检定和检定结果的影响因素
- play framework 提示:VerifyError错误
- eclipse 插件更新站点
- zzuli 1787: 生化危机 (BFS)
热门文章
- UML建模工具Visio、Rational Rose、PowerDesign,Visual Paradigm for UML
- 网站搜索引擎优化SEO策略及相关工具资源
- Net窗体程序设计总结
- Linux--安装截图工具Shutter
- 各种编译环境中如何为C++添加命令行参数(Command-line parameter)
- 大数据之-Hadoop3.x_MapReduce_WordCount案例_Debug调试---大数据之hadoop3.x工作笔记0092
- 大数据之-Hadoop3.x_MapReduce_WordCount案例需求分析---大数据之hadoop3.x工作笔记0087
- Got error 28 from storage engine的错误怎么办
- No input file specified的解决方法
- 2015-12-02 计划任务维护数据库