修复 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 报错的问题请查看下面的相关链接