sql >> データベース >  >> NoSQL >> MongoDB

Ubuntu16.04LTSでmongodbを実行しています

    Ubuntu 16.04(Ubuntu Xenial xerusとも呼ばれます)をアップグレードまたはインストールした人は、古いサービスの一部が実行を停止したことに気づきました。この問題はバージョン15.04からわかっていますが、上記のバージョンに焦点を当てます。

    これがMongoDBの私の場合でした。簡単に言うと、Ubuntuはupstartからsystemdに移行しました。これらの問題に対する一般的な解決策の1つは、upstartに戻すことです。私はそのオプションを実際の解決策とは考えていません。確かに長期的にはそうではありません。

    この問題の実際の解決策(IMHO)は、MongodDBを起動するsystemdスクリプトを作成することです。残念ながら、MongoDBの担当者はまだ提供していませんでした。

    だから私は一から書く必要がありました。独自のいずれかを作成するには、次の手順に従います。

    1. sudo su
      
      を使用してrootに切り替えます

    または、次のすべての手順でsudoを使用します。

    1. サービススクリプトを作成します(この例では、サービスの名前はMongodbです)

      nano /lib/systemd/system/mongodb.service
      
    2. ファイルの内容は

      である必要があります
      [Unit]
      Description=MongoDB Database Service
      Wants=network.target
      After=network.target
      
      [Service]
      ExecStart=/usr/bin/mongod --config /etc/mongod.conf
      ExecReload=/bin/kill -HUP $MAINPID
      Restart=always
      User=mongodb
      Group=mongodb
      StandardOutput=syslog
      StandardError=syslog
      
      [Install]
      WantedBy=multi-user.target
      

    こちらからファイルをダウンロードすることもできます: mongodb.service
    重要なフィールドの簡単な説明は次のとおりです。
    ExecStart -実行するコマンドです。 Mongoは/usr/ binの下にインストールされ、構成ファイルは/ etc
    ユーザーに書き込まれます。 -mongodプロセスのuid。
    グループ -モンゴッドプロセスのギッド。ユーザーとグループはインストールによって作成されることに注意してください。

    ここでmongodbを開始します:

    sudo systemctl start mongodb
    

    mongodbサービスの使用を停止するには:

    sudo systemctl stop mongodb
    

    起動時にmongodbを有効にするには

    sudo systemctl enable mongodb.service
    

    サービスを更新する必要がある場合は、次を使用してください:

     sudo systemctl daemon-reload
    


    1. MongoDBで古い接続を処理する方法

    2. mongoは、最後に空/欠落フィールドがあるドキュメントを昇順で返すことができますか?

    3. Python + Memcached:分散アプリケーションでの効率的なキャッシング

    4. MongoDB C#ドライバーとサーバーで生成されたObjectId