代码之家  ›  专栏  ›  技术社区  ›  Peter

MongoDB社区:无法在任何兼容版本下启动WiredTiger

  •  0
  • Peter  · 技术社区  · 4 年前

    今天,在没有做出任何意识到的改变的情况下,我的mongodb社区停止了工作。

    当我检查酿造服务时,我将错误视为状态

    mongodb-community error  3584 user ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community@4.2.plist
    

    我检查了日志,发现了以下错误:

    2022-02-25T15:50:58.324-0800 I  CONTROL  [main] ***** SERVER RESTARTED *****
    2022-02-25T15:50:58.330-0800 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
    2022-02-25T15:50:58.359-0800 W  ASIO     [main] No TransportLayer configured during NetworkInterface startup
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] MongoDB starting : pid=64356 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=Als-MacBook-Pro.local
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] db version v4.2.18
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] git version: f65ce5e25c0b26a00d091a4d24eec1a8b3a4c016
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] allocator: system
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] modules: none
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] build environment:
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten]     distarch: x86_64
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten]     target_arch: x86_64
    2022-02-25T15:50:58.360-0800 I  CONTROL  [initandlisten] options: { config: "/usr/local/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/usr/local/var/mongodb" }, systemLog: { destination: "file", logAppend: true, path: "/usr/local/var/log/mongodb/mongo.log" } }
    2022-02-25T15:50:58.361-0800 I  STORAGE  [initandlisten] Detected data files in /usr/local/var/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2022-02-25T15:50:58.361-0800 I  STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
    2022-02-25T15:50:58.788-0800 E  STORAGE  [initandlisten] WiredTiger error (13) [1645833058:788043][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1645833058:788043][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
    2022-02-25T15:50:58.789-0800 E  STORAGE  [initandlisten] WiredTiger error (13) [1645833058:789197][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1645833058:789197][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
    2022-02-25T15:50:58.789-0800 E  STORAGE  [initandlisten] WiredTiger error (13) [1645833058:789360][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1645833058:789360][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
    2022-02-25T15:50:58.789-0800 E  STORAGE  [initandlisten] WiredTiger error (13) [1645833058:789507][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1645833058:789507][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
    2022-02-25T15:50:58.789-0800 E  STORAGE  [initandlisten] WiredTiger error (13) [1645833058:789685][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1645833058:789685][64356:0x11468e600], wiredtiger_open: __posix_open_file, 665: /usr/local/var/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
    2022-02-25T15:50:58.789-0800 W  STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
    2022-02-25T15:50:58.789-0800 F  STORAGE  [initandlisten] Reason: 13: Permission denied
    2022-02-25T15:50:58.789-0800 F  -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 928
    2022-02-25T15:50:58.789-0800 F  -        [initandlisten] \n\n***aborting after fassert() failure\n\n
    

    我在谷歌和Stack中搜索了一些解决方案,比如将MongoDB降级到4.2.x版本,或者设置权限,但都不起作用。

    我能做什么? 我甚至会考虑丢失数据,因为这是一个带有伪数据的本地服务器。无论如何,我想用正确的方式来解决它。

    谢谢

    0 回复  |  直到 4 年前
        1
  •  2
  •   benjamin    4 年前

    这种情况通常发生在升级时,所以请检查您的mongo版本。我在几台服务器上也遇到了同样的问题。避免这种情况的正确方法是在进行mongo升级之前,将FCV(featureCompatibilityVersion)设置为正确的FCV。在这种情况下,在我们升级到mongo 4.4之前,应该将其设置为4.2版本。要检查当前FCV,请在mongoshell(admindb)中运行以下命令:

    db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
    

    在我的情况下,它是4.0,所以我必须通过执行以下操作来更新它:

    db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
    

    然后升级到mongo 4.4非常顺利。

    如果你已经搞砸了,应该可以降级到mongo 4.2.6或更高版本,如上所述更新FCV,然后升级到mongo 4.4。基于您的 日志,看起来它没有访问某些文件的权限(例如/var/lib/mongodb/),所以请确保这些文件由mongodb用户所有。

        2
  •  0
  •   Draculea    3 年前

    我确实安装了非官方的mongoDB使用:

    sudo apt-get install mongodb
    

    然后我卸载了它,但使用 remove 而不是 purge

    然后根据官方网页安装mongodb.org,得到相同的错误 Failed to start up WiredTiger under any compatibility version.

    之后,我使用pruge卸载了mongodb的所有内容,重新安装了mongdb,使用purge再次卸载,然后重新安装了mongodb-org。

    问题解决了。