macOS 升级到 Catalina (10.15.3) 后安装 MongoDB (Day 10)

本机当前版本:10.15.3 (19D76)

网络上的 Mac 安装 MongoDB 的教程十有八九都没法用了,倒腾了一下午,将今日份倒腾记录下来, 供参考

一、下载并解压

  1. 官网链接:找到 Software-Community Server 跳转,Download 即可

P.S. 自带浏览器下载很慢/老断线的话,可以考虑迅雷会员下载 ->体验起飞速度

  1. 下载完成后解压到 /Users/「username」/softwares 文件夹中, 并建议mongodb-macos-x86_64-4.2.3文件夹名称改为mongodb

P.S./Users/「username」/softwares为自建文件夹,可换为您喜欢的其他自定义文件夹(想安装的位置就行 )

P.P.S.可以自己在文件夹中双击解压,或终端中执行以下命令行完成解压:

sudo tar -zxvf mongodb-macos-x86_64-4.2.3.tgz

二、PATH 配置

  • 本机环境为 zsh 下;若为 bash 可能在 bash_profile 文件内配置

配置好 PATH ,我们就不用每次想要启动MongoDB 时,都要:

 cd /usr/local/mongodb/bin/
 ./mongod
  • 如何实现:

终端中执行以下命令:

open ~/.zshrc

在文件最末添加配置(别出错 ):

#mongodb 配置
PATH=$PATH:/Users/「username」/softwares/mongodb/bin

P.S. 同上文,/Users/「username」/softwares可换为其他自定义路径

保存退出后,终端中执行以下命令:

source ~/.zshrc

三、创建数据库存储目录

若从头完全按本文操作,则可直接照下方“解决方式”处的命令进行创建即可,不会报错 :)

错误及解决方式

按大多数教程,输入sudo mkdir -p /data/db后,产生错误:mkdir: /data/db: Read-only file system。(按个人理解是macOS 升级到 Catalina 的缘故)

  • 解决方式: 在用户文件夹中创建该目录,如:
mkdir -p /Users/「username」/softwares/mongodb/data/db
// username 需更改

P.S. 数据库目录也要跟着指定为该目录(即启动时需要完整输入如下指令):

mongod --dbpath /Users/「username」/softwares/mongodb/data/db

P.S.一定要使用绝对路径

P.P.S. 如果涉及到 permission 之类的权限类的报错的话,可尝试指令前加 sudo

其实到此就结束了,但长远来看,我们应使用配置文件启动 MongoDB,请见下文。

四、启动MongoDB

(一)设置配置文件

  1. 目的&好处:虽然还是很长一串指令, 但是我们可以在配置文件中写入很多配置,这样我们就不需要写n多条指令来完成启动了(本文仅进行路径配置,其他配置会另写文章)

  2. 原本启动时我们需要输入:

    mongod --dbpath /Users/「username」/softwares/mongodb/data/db
    

    设置配置文件后我们改为输入:

    mongod --config /Users/「username」/softwares/mongodb/conf/mongodb.conf
    
  3. 如何实现:

    1)在mongodb/ 文件夹中创建配置文件夹 conf

    2)conf 文件夹内创建配置文件,命名为 mongodb.conf

    3)打开配置文件mongodb.conf, 写入:

    storage:
        dbPath: "/Users/「username」/softwares/mongodb/data/db"
    

    4)保存退出,可以通过配置文件启动 MongoDB 了。

    5)成功标志:能看到如下的类似内容(倒数的几行里找):

    2020-02-20T22:56:54.665+0800 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
    2020-02-20T22:56:54.665+0800 I NETWORK [listener] Listening on 127.0.0.1
    2020-02-20T22:56:54.665+0800 I NETWORK [listener] waiting for connections on port 27017

    找到NETWORK行, 27017号端口的出现就是成功标志 :)

(二)错误及解决方式

  1. 请确保各个自建文件、文件夹的所有者均为「username」(owner),而不是 root

    如:mongodb 文件夹、data\db 文件夹、conf 文件夹、mongodb.conf 文件等

    • 修改文件/文件夹所有者权限的简单语法说明:sudo chown 「owner」 文件/文件夹名 即可

    • 修改文件/文件夹读写权限的简单语法说明:chmod 664 文件/文件夹名 即够用

      (664 对应-rw-rw-r-- ,如需了解更多权限设置可参考链接

  2. 写入配置时,如果提示无法写入,请改为加 sudo 打开配置文件:sudo vim mongodb.conf,即可修改后顺利保存。另解::w !sudo tee %完成后请及时修改文件权限

  3. 写完配置文件,通过 conf 文件启动时,发现提示错误:Error parsing YAML config file: yaml-cpp: error at ...: illegal map value

    解决方式:把 tab 键换成 4 个空格键即可

  4. 启动MongoDB时出现:Failed to unlink socket file /tmp/mongodb-27017.sock...

    例如

    ...

    2016-07-12T16:52:28.912+0800 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted

    ...

    2020-02-20T15:33:48.907+0800 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock Permission denied

    ...

    • 从红色的提示可以看出是因为/tmp/mongodb-27017.sock这个文件没有操作权限

    • 去查他的权限,可以看到这个文件的所有者是root用户,因为在准备环境的时候用的是root用户,而当时用root用户启动过一个没成功,后面修改配置文件过后用mongodb用户启动就出现了这个问题。

    • 解决方式:

    直接把该文件删除掉,再用Mongodb用户启动就行了。

    sudo rm /tmp/mongodb-27017.sock
    mongod
    

    再次查询就可以看到是mongodb用户创建的文件了

  5. 启动MongoDB时出现:Failed to set up listener: SocketException: Address already in use
    解决方式

    lsof -i :27017 //找到该端口号的 PID
    kill -9 61316  //61316为找到的 PID 号
    

五、关闭MongoDB

Ctrl+C


希望对看到这篇的你有帮助,不会倒腾大半天

开始一起愉快地继续学习/使用 MongoDB 吧 :)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容