• 分类

  • 重置

修复 Mac brew 安装 mongodb 报 Error: No available formula with the name ‘mongodb’ 问题详解

    根据 homebrew-brew 官方的解释得知,MongoDB 不再是开源的了,并且已经从 Homebrew中移除 #43770

    正是由于 MongoDB 的商业化不太理想,所以它选择了闭源。所以,在它闭源之前的那些 brew 安装方法都会报错了。网上很多的文章都是基于以前古老的安装方式,这种方式导致 brew 无法安装,报错。

    
    Error: No available formula with the name ‘mongodb'

    新的安装方式可以参考 github 主页,https://github.com/mongodb/homebrew-brew。

    新的安装方式告诉我们,需要先执行:

    
    brew tap mongodb/brew

    接着在执行:

    
    brew install mongodb-community

    这是安装的社区版的。如果需要安装指定版本的,可以带上 @版本号。

    
    brew install mongodb-community@4.2
    
    brew install mongodb-community@4.0
    
    brew install mongodb-community@3.6

    如果仅想安装最新的 mongoshell,则可以执行下面的命令。

    
    brew install mongodb-community-shell

    如果出现 Download failed 或 DownloadError: Failed to download resource “mongodb-community” 错误,则重复执行安装命令,进行下载。这属于你的网络问题,多尝试几次。

    安装后的默认配置文件路径如下:

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

    有了 brew 后,启动 Mongo 和停止 Mongo 就很方便了。

    
    #启动
    brew services start mongodb-community
    
    #或
    brew services start mongodb/brew/mongodb-community
    
    #停止
    brew services stop mongodb-community
    
    #或
    brew services stop mongodb/brew/mongodb-community

    安装好了之后,我们需要做一些配置,不能让 mongo 裸奔,这些年出了不少泄露数据的事故,我们得配置一下安全认证。

    首先,我们启动 mongo 成功后,执行下面的命令:

    
    #链接 mongo
    mongo
    
    #切换db,或创建 xttblog
    use xttblog
    
    #创建用户admin
    db.createUser({
    	user:'admin',
    	pwd:'admin',
    	roles:[{role:'readWrite',db:'xttblog'}]
    })

    如果创建成功,则提示:Successfully added user。

    
    Successfully added user: {
    	"user" : "admin",
    	"roles" : [
    		{
    			"role" : "readWrite",
    			"db" : "xttblog"
    		}
    	]
    }

    角色设置需要注意,userAdminAnyDatabase 之类的默认没有了,可以通过 show roles 命令查看角色。

    
    #查看角色
    show roles
    
    #查看用户
    show users

    如果要修改用户角色,则可以执行 db.updateUser 命令。

    
    db.updateUser(
    	"admin",
    	{
    		roles:[
    			{role:"readWrite",db:"xttblog"},
    			{role:"userAdmin",db:"xttblog"},
    			{role:"dbAdmin",db:"xttblog"}
    		]
    	}
    )

    操作完成后,我们就可以修改 mongo 的配置文件了,开启认证。

    
    vi /usr/local/etc/mongod.conf

    在文件最后加入:“#开启权限校验”之后的配置。

    
    systemLog:
     destination: file
     path: /usr/local/var/log/mongodb/mongo.log
     logAppend: true
    storage:
     dbPath: /usr/local/var/mongodb
    net:
     bindIp: 127.0.0.1
     port: 27017
    # 开启权限校验
    security:
     authorization: enabled

    重启服务。再次操作 mongo 就需要进行认证了。

    
    mongo
    use xttblog
    db.auth("xttblog","xttblog")

    同样的 SpringBoot 整合 Mongo 的 url 就得配置上密码认证了。

    
    mongodb://admin:admin@localhost:27017/xttblog

    至此MongoDB安装完成,更多关于安装 mongodb 报错的问题请查看下面的相关链接