美文网首页程序员
Brew 升级MongoDB无法连接数据库

Brew 升级MongoDB无法连接数据库

作者: samumist | 来源:发表于2019-03-16 12:35 被阅读0次

    上周末终于下定决心把家里的一台2012年的Mac Mini(买来后就加装了SSD并升级了内存)从10.11 升级到10.14。升级完了觉得比原来有点慢,尤其是启动的时候,但想想机器里装了那么多东西,又不是全新安装,再加上它也不是我的主力开发机器,也就忍了。

    除了有些app需要升级以外,其他基本上正常。花时间较多的就是我用的一个键盘快捷键软件karabiner,改动比较大,原来的配置都没法用了。又得重新找配置,找到了还要改成自己的习惯,找不到合适的就得自己写,尤其是我这台Mac Mini配的苹果蓝牙键盘有些键坏了(1-9,F1-F9打不出来),就得重写配置,如按right_ctrl + a-l来输出数字1-9

    MongoDB 升级到了4.x,出错了!

    我的MongoDB是用homebrew安装的,当时安装的版本是3.4。由于开发上的需要,我一直使用brew pin mongodb把版本固定在3.4。后来虽然换了机器,我也忘了unpin,就一直固定在那个版本。

    这次升级macOS 10.14后,用brew升级安装的软件包的时候就顺手把原来所有pin的都unpin了,mongoDB也升级到了4.0.3。昨天有个朋友需要配置一下Mac下的开发环境,在给他讲的时候顺手启动了一下MongoDB,竟然无法启动,给了这么一串信息:

    [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
    

    什么情况?朋友新装的可以顺利启动,我的竟然不可以?

    MongoDB启动使用brew的默认配置

    顺便说一下,我在开发机器上一般是用brew services start mongodbmongod设置为开机自启动的,会调用brew的一个默认配置文件,这样省得自己再去设置数据存储路径等。在非主力机上我一般用手动启动,也是使用brew的默认配置文件mongod --config /usr/local/etc/mongod.conf,我在.zshrc里配置了一个名为mongobrew的alias,每次敲mongobrew就行了,省得敲那么多键。

    不过太多alias了也是个麻烦,记不住啊!我大概有差不多3年没有添加新的alias了。自从我发现了FZF以后,只要按一个快捷键然后用模糊搜索我原来敲过的命令就行了,高大上了很多。

    扯远了,不过FZF确实值得推荐!

    解决方法

    搜索了一下,发现了简书上这篇这篇文章都提到了这个问题,虽然给出了解决方法,如另外创建数据库存储路径/data/db - MongoDB默认的,但没有说明为什么会出现这个问题。

    查看了一下log,发现有这么一个警告:

    ** IMPORTANT: UPGRADE PROBLEM: The data files need to be fully upgraded to version 3.6 before attempting an upgrade to 4.0; see http://dochub.mongodb.org/core/4.0-upgrade-fcv
    

    意思是数据文件在升级到4.0以前,首先要升级到与3.6兼容,然后给出了一个文档链接。

    于是我按文档中的说明升级了数据文件,我删除了MongoDB 4.0.3,使用brew install mongodb@3.4重新安装了MongoDB 3.4。

    然后就可以重新连接数据库了。

    需要注意的是如果你要在命令行下运行如mongodmongo的话,你需要按照下面MongoDB Formula的建议配置你的PATH

    mongodb@3.4 is keg-only, which means it was not symlinked into /usr/local,
    because this is an alternate version of another formula.
    
    If you need to have mongodb@3.4 first in your PATH run:
      echo 'export PATH="/usr/local/opt/mongodb@3.4/bin:$PATH"' >> ~/.zshrc
    
    
    To have launchd start mongodb@3.4 now and restart at login:
      brew services start mongodb@3.4
    Or, if you don't want/need a background service you can just run:
      /usr/local/opt/mongodb@3.4/bin/mongod --config /usr/local/etc/mongod.conf
    

    问题暂时解决了。待我升级了数据库文件支持4.0以后,再在这里更新。

    相关文章

      网友评论

        本文标题:Brew 升级MongoDB无法连接数据库

        本文链接:https://www.haomeiwen.com/subject/hnbjmqtx.html