使用了大半年的 mongodb ,最近在公司的新项目中应用,在 mac 上安装 mongodb 时发现始终安装不了,一直在报下面这样的错误:

brew install mongodb

升级 brew 也不行,这个 mac 机上从未安装过 mongodb,但从错误信息中提示却是要卸载它,真是醉了。

从2019年9月2日开始 ,HomeBrew 也从核心仓库 (#43770) 当中移除了mongodb 模块


不过,幸运的是 mongodb 团队还在维护社区版的 Homebrew,最后还是从Stack Overflow 上查找到答案:

为了搞清楚这些是啥意思,查看了 homebrew-brew gitHub。

  1. 在安装社区版前要先执行:brew tap mongodb/brew  这个过程有点久,我装过可能需要30分钟左右。
  2. 安装最新社区版:brew reinstall mongodb-community
  3. 启动 mongodb-community 服务:brew services start mongodb-community ,提示 “Service `mongodb-community` already started”,说明服务启动成功

mongodb-community 命令区别 mongodb

  1. 启动服务:brew services start mongodb-community
  2. 重启服务:  brew services restart mongodb-community
  3. 停止服务:brew services stop mongodb-community
  4. 安装某个版本:brew install mongodb-community@x.x.x
  5. 手动启动服务:mongod --config /usr/local/etc/mongod.conf

文件路径:

  1.  配置文件:/usr/local/etc/mongod.conf
  2.  日志目录路径:/usr/local/var/log/mongodb
  3.   数据目录路径:/usr/local/var/mongodb

这样 MongoDB 服务就安装和启动好了。


将 MongoDB 下载到本地,mongodb-osx-ssl-x86_64-4.0.13.tgz 我下载的是这个版本,解压后,新建目录,将解压后的文件存放在里面。

我的目录为:/Volumes/code/localhost/node/mongodb/bin

  • 创建存储数据库文件 data

    在任意盘符根目录下创建一个 data 目录,用来存放数据库文件。 mongoDB 会自动把自己安装位置的盘符根目录下的 data 文件夹作为自己的数据存储目录,这里也可以直接在安装位置所在盘符创建,我是在 bin 目录下创建的 data 目录。

   新开一个 shell,指定 db 路径:

进入 /Volumes/code/localhost/node/mongodb/bin 目录 ,输入 mongod,会看到 :

MongoDB starting : pid=942 port=27017 dbpath=/data/db 64-bit

db version v4.2.1

git version: edf6d45851c0b9ee15548f0f847df141764a317e

。。。

说明 db 启动成功了!!

    如果 data 目录在其它位置,需要指定 data 目录路径,输入 mongod --dbpath 路径

  • 连接数据库  npm run start 

         在 server.js 中,进行配置:

const mongoose = require('mongoose');
const mongoClient = require('mongodb').MongoClient; // db
const dburl = "mongodb://127.0.0.1:27017/local";
mongoClient.connect(dburl, (err, db) => {
if (err) {
console.log('数据库连接失败!');
return;
};
console.log(db);
});

在 package.json 中,进行配置:

"scripts": {
"server": "node server.js",
"start": "nodemon server.js"
},
   const dburl = "mongodb://127.0.0.1:27017/local";

默认情况下,db 启动成功后,本地会有三个表 admin / config / local

> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>
  • 查看 db 配置信息  npm run start ,成功的启动 服务并连接 db
> web@1.0.0 start /Volumes/code/localhost/node/web
> nodemon server.js [nodemon] 1.19.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
(node:1009) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
Successful! 访问地址为 http://127.0.0.1:3000
MongoClient {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
s: {
url: 'mongodb://127.0.0.1:27017/local',
options: {
servers: [Array],
caseTranslate: true,
dbName: 'local',
socketTimeoutMS: 360000,
connectTimeoutMS: 30000,
retryWrites: true,
useRecoveryToken: true,
readPreference: [ReadPreference],
promiseLibrary: [Function: Promise]
},
promiseLibrary: [Function: Promise],
dbCache: Map {},
sessions: Set {},
writeConcern: undefined,
namespace: MongoDBNamespace { db: 'admin', collection: undefined }
},
topology: Server {
_events: [Object: null prototype] {
serverOpening: [Function],
serverDescriptionChanged: [Function],
serverHeartbeatStarted: [Function],
serverHeartbeatSucceeded: [Function],
serverHeartbeatFailed: [Function],
serverClosed: [Function],
topologyOpening: [Function],
topologyClosed: [Function],
topologyDescriptionChanged: [Function],
commandStarted: [Function],
commandSucceeded: [Function],
commandFailed: [Function],
joined: [Function],
left: [Function],
ping: [Function],
ha: [Function],
authenticated: [Function],
error: [Function],
timeout: [Function],
close: [Function],
parseError: [Function],
open: [Function],
fullsetup: [Function],
all: [Function],
reconnect: [Function]
},
_eventsCount: 25,
_maxListeners: Infinity,
clientInfo: {
driver: [Object],
os: [Object],
platform: 'Node.js v12.11.1, LE'
},
s: {
coreTopology: [Server],
sCapabilities: null,
clonedOptions: [Object],
reconnect: true,
emitError: true,
poolSize: 5,
storeOptions: [Object],
store: [Store],
host: '127.0.0.1',
port: 27017,
options: [Object],
sessionPool: [ServerSessionPool],
sessions: Set {},
promiseLibrary: [Function: Promise]
}
}
}

MongoDB 不在开源了,使用 Homebrew 安装只能玩社区版了的更多相关文章

  1. centos 7 安装 Docker Engine-CentOS 社区版

    获取Docker Engine-CentOS社区: https://docs.docker.com/install/linux/docker-ce/centos/ 1.操作系统要求 1.1 要安装 D ...

  2. 安装蓝鲸paas社区版

    安装蓝鲸paas社区版http://docs.bk.tencent.com/bkce_install_guide/setup/get_ready.html#hostssystemctl stop fi ...

  3. Ubuntu 安装 Docker CE(社区版)

    参考自 https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html#ubuntu-1604- docker-io 是以前早期的版本,版本 ...

  4. CentOS 7安装Odoo 15社区版的详细操作指南

    我之前的文章介绍过在Windows环境下安装Odoo 15,如果您需要在Windows部署,具体可参考我文末的微信号<10分钟教你本机电脑安装Odoo 15,并启用一个内置的项目APP应用> ...

  5. Docker 镜像安装 GitLab 中文社区版

    docker run \ --detach \ --publish : \ --publish : \ --name gitlab \ --restart unless-stopped \ --vol ...

  6. docker 安装 gitlab 中文社区版

    docker pull twang2218/gitlab-ce-zh 创建一个docker 目录 /usr/local/docker/gitlab 创建一个 docker-compose.yml ve ...

  7. Docker(社区版) centos版 安装

    1,总结一下docker的安装,其实官网有很全面的资料了,可以自己上面去看,但都是英文的. https://docs.docker.com/engine/installation/linux/dock ...

  8. Mac OSX 下用 Homebrew 安装 MongoDB 并配置到 WebStorm 中

    1. 安装 Ruby OSX 操作系统内置 Ruby,但如果没有 Ruby,则需先输入以下命令安装能够进行多版本ruby环境安装.管理和切换的命令行工具 RVM. 1.1 安装 RVM 打开终端输入以 ...

  9. HomeBrew安装MongoDB如何启动

    1.先安装HomeBrew 安装(需要 Ruby): ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/in ...

随机推荐

  1. RocketMq在SparkStreaming中的应用总结

    其实Rocketmq的给第三方的插件已经全了,如果大家有兴趣的话请移步https://github.com/apache/rocketmq-externals.本文主要是结合笔者已有的rmq在spar ...

  2. telerik reporting 在.net core api 使用

    工具要求:telerik reporting R3 2019..net core 2.2  .vs2017 最新版 从官网下载下来的的telerik reporting 的.net core  例子是 ...

  3. Ocelot网关在.Net Core 的使用

    1.  项目环境 .Net Core 2.2      Ocelot 13.5.2 2. 基本使用 * Nuget 安装 Ocelot , Ocelot.Provider.Polly * 修改 Pro ...

  4. JVM常用参数详解

     JVM整个堆大小=年轻代大小 + 年老代大小 + 持久代大小,在JDK1.8及之后的版本由于永久代被元空间替代,所以jdk1.8中的堆=年轻代大小 + 年老代大小.本文使用的是JDK1.8  1.堆 ...

  5. SVN异常,Previous operation has not finished; run 'cleanup' if it was interrupted

    SVN在提交.更新.cleanup时报错:Problem running logsvn: Failed to run the WC DB work queue associated with 'D:\ ...

  6. [document.cookie]为什么cookie不在window下的呢.奇怪了[未完待续]

    什么是cookie,怎么就叫cookis,它能干嘛 我猜吧,就是登录页面的时候传值,二次登录的时候可以给你说句'hello xxx'; 下面这堆比较啰嗦,随意看吧 //cookie 用户储存在用户本地 ...

  7. PWA 学习笔记(五)

    离线与缓存 资源请求的拦截代理: 1.资源请求的判断: (1)fetch 事件会拦截页面上所有的网络资源请求,但我们通常只对部分资源请求进行处理, 其余的请求会继续走浏览器默认的资源请求流程 (2)f ...

  8. C语言入门-全局变量

    一.全局变量 定义在函数外面的变量是全局变量 全局变量具有全局的生存期和作用域 它们与任何函数无关,在任何函数内部都可以使用它们 #include <stdio.h> int f(void ...

  9. MATLAB聚类有效性评价指标(外部 成对度量)

    MATLAB聚类有效性评价指标(外部 成对度量) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多内容,请看:MATLAB: Clustering ...

  10. [PHP]关于连接MySQL的问题

    概述 PHP中无论使用MySQL函数抑或PDO连接MySQL服务器,都允许有两种方式,一是通过TCP网络层,一是通过unix socket: PHP并没有给出指明用何种方式去连接数据库,决定使用何种方 ...