【问题标题】:MongoDB - shutting down with code:100MongoDB - 使用代码关闭:100
【发布时间】:2017-04-14 12:51:39
【问题描述】:

我一直在尝试在我的Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-22-generic x86_64) VPS 上设置 MongoDB,但遇到了一些问题。我在我的服务器上以具有root 访问权限但不使用root 帐户本身的用户身份运行。

当我在 admin 数据库上执行 db.createUser() 时开始注意到问题,因此我可以添加其他用户,但我收到了以下错误: not authorized to execute command

然后我继续使用网站上提供的教程卸载并再次安装:https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

现在,当我在 Run MongoDB Community Edition 部分的 2 验证 MongoDB 是否已成功启动 时,即查看文件 @ 的输出987654330@,我得到以下信息:

2017-04-14T14:23:09.309+0200 I CONTROL  [main] ***** SERVER RESTARTED *****
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] MongoDB starting : pid=9691 port=27017 dbpath=/var/lib/mongodb 64-bit host=vps338741
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] db version v3.4.3
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] modules: none
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] build environment:
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten]     distarch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten]     target_arch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2017-04-14T14:23:09.349+0200 I STORAGE  [initandlisten] 
2017-04-14T14:23:09.349+0200 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-04-14T14:23:09.349+0200 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-14T14:23:09.349+0200 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=464M,session_max=20000,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),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-04-14T14:23:09.366+0200 E STORAGE  [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
2017-04-14T14:23:09.367+0200 I -        [initandlisten] Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
2017-04-14T14:23:09.367+0200 I STORAGE  [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating
2017-04-14T14:23:09.367+0200 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-04-14T14:23:09.367+0200 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2017-04-14T14:23:09.367+0200 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-04-14T14:23:09.367+0200 I CONTROL  [initandlisten] now exiting
2017-04-14T14:23:09.367+0200 I CONTROL  [initandlisten] shutting down with code:100

我环顾四周,发现与as found here 的错误不一样,因为这与我没有/data/db 文件夹有关。从该日志中,我可以看到这与这一行有关:

2017-04-14T14:23:09.366+0200 E STORAGE  [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory

这是真的,当我转到 /var/lib/mongodb 并执行 ls -l 时,结果是:

drwxr-xr-x 2 mongodb mongodb 4096 Apr 14 14:10 journal
-rw-r--r-- 1 mongodb mongodb    0 Apr 14 14:02 mongod.lock
-rw-r--r-- 1 mongodb mongodb    0 Apr 14 14:10 WiredTiger
-rw-r--r-- 1 mongodb mongodb   21 Apr 14 14:10 WiredTiger.lock
-rw-r--r-- 1 mongodb mongodb 1004 Apr 14 14:10 WiredTiger.turtle

但我不知道我是否应该手动创建该文件,因为在其他地方没有看到这个问题。如in the answer to this question 所述,我确保mongodb 用户也拥有这些文件的权限,但仍然没有运气。

我真的不知道该怎么做,任何帮助将不胜感激,因为这是我让它工作的第五次尝试!

谢谢!

【问题讨论】:

    标签: node.js linux mongodb permissions ubuntu-16.04


    【解决方案1】:

    如果您创建了mkdir -p /data/db,您可能必须使用以下命令启动服务器:sudo mongod

    macOS/OSX:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

    【讨论】:

      【解决方案2】:

      试试:

      sudo service mongod start ;

      然后运行 ​​mongodb:

      蒙哥

      【讨论】:

        【解决方案3】:

        这是 MongoDB 中的一个已知错误,请查看report

        您的问题通常不是文件丢失,而是在干净关闭后重新启动时文件丢失。您的问题与/data/db 目录无关,而与重启后丢失的WiredTiger.wt 文件有关。

        10 月 1 日 20:00:44 alpha mongod.27017[1074]: [initandlisten] WiredTiger (2) [1443729644:306783][1074:0x7fdba8fd4bc0],文件:WiredTiger.wt, 连接:/data/db/WiredTiger.wt:没有这样的文件或目录

        错误报告谈到了同样的事情。

        试试:

        我建议尝试在配置文件中禁用 WiredTiger。

        MongoDB Config Options

        WiredTiger

        更新:要禁用WiredTiger,您必须在mongo 配置文件中更改storage.engine 选项,默认情况下,mongod 使用WiredTiger,但您也可以使用InMemory LINK

        【讨论】:

        • 这很有效,感谢您揭露了这个问题。我已经在storage 部分下更改了我的配置engine: mmapv1,如here 所示。非常感谢您的帮助!
        • 配置文件在哪里?
        • 如果您可以在这里分享如何禁用WiredTiger 会更好,而不是将我们重定向到另一个 URL :facepalm:
        【解决方案4】:

        创建目录

        sudo mkdir /data/db

        提供对目录的访问权限

        sudo chown -R $USER /data/db

        然后运行

        魔神

        如果你的端口已经在使用 stop mongod,它可能正在后台运行

        sudo service mongod 停止

        如果最后一行是

        等待端口 27017 上的连接

        那么 mongod 正在工作

        【讨论】:

          【解决方案5】:

          这个命令帮助了我:

          mongod --dbpath /data/db --repair
          

          【讨论】:

            【解决方案6】:

            对我来说,“答案”是执行以下命令(因为 service mongod start 和只是 mongod 失败)

            sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log
            

            我不需要关闭有线老虎

            【讨论】:

              【解决方案7】:

              Docker 容器:

              在我的例子中,我使用的是一个正在运行的 docker 容器

                mongodb:
                  image: 'bitnami/mongodb:latest'
                  user: root
                  command: "chown -R $USER /bitnami/mongodb"
                  volumes:
                    - '/var/www/mongodb_data:/bitnami'
                  environment:
                    - MONGODB_USERNAME=bn_parse
                    - MONGODB_PASSWORD=3yfQexfqcc
                    - MONGODB_DATABASE=bitnami_parse
              

              我将 docker 主机迁移到其他 VPS/VM(aws 太贵了)。

              我临时添加了命令“chown -R $USER /bitnami/mongodb”来更改该文件夹 /bitnami/mongodb 的所有者。它奏效了。

              【讨论】:

                猜你喜欢
                • 2017-05-16
                • 1970-01-01
                • 2017-06-23
                • 1970-01-01
                • 1970-01-01
                • 2019-09-14
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多