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

mongodb3.4.3パーミッション拒否wiredtiger_kv_engine.cpp267ubuntu16でのエラー

    mongodをサービスとして起動するのに問題があります:sudo mongod -f /etc/mongod.confを実行するとどのように機能するのですか?sudo service mongod startで起動すると、ログにエラーが表示されます

    >

    sudo コマンドはmongodを開始します rootを使用 権限(別名スーパーユーザーアクセス)。 mongodを実行する場合 サービスとして、ユーザーとグループはサービス定義(mongodb)で構成されます あなたの例では両方のために)。

    mongodを実行する必要はありません rootとして処理します ユーザーであり、最小特権の原則の一般的なセキュリティ慣行に従って、これは強くお勧めしません。

    コマンドラインから構成をテストする場合は、sudoを使用できます。 デフォルト(root)ユーザーではなく、指定されたユーザーで実行します。

    例:

    sudo -u mongodb mongod -f /etc/mongod.conf 
    

    一般に、mongodを実行するのではなく、サービス構成を使用するのが最善です。 手動で。手動で呼び出す場合は、構成ファイルのパスなどのパラメーターを含めることも忘れないでください(デフォルトの構成パスがないため)。構成ファイルがない場合、mongod dbPathなどのデフォルトオプションも使用します /data/dbの 。

    アサーション:28595:13:アクセスが拒否されましたsrc / mongo / db / storage / wiredtiger / wiredtiger_kv_engine.cpp 267

    パーミッションエラーの考えられる原因は、以前にmongodを開始したことです。 rootとして ユーザー。一部のディレクトリとファイルはrootユーザーが所有する可能性があるため、mongodb ユーザーはそれらにアクセスできません。特定のエラーは、データディレクトリ(つまり、構成されたstorage.dbPath)内のファイルへのアクセスに関連しています。 mongod.confで 。

    mongod.confのデフォルトパスを変更していないと仮定します ファイルの場合、mongod.serviceに一致するように権限を再帰的に調整できる必要があります 定義が期待します。

    まず、mongodを停止したことを確認します 現在実行中の場合はインスタンス。

    次に、予想されるユーザーとグループへのアクセス許可を再帰的に調整します。

    # storage.dbPath
    sudo chown -R mongodb:mongodb /var/lib/mongodb
    
    # systemLog.path
    sudo chown -R mongodb:mongodb /var/log/mongodb
    

    これで、mongodを起動できるようになります。 サービスとして。サービスの開始に失敗した場合は、mongodに詳細が記載されているはずです。 ログファイル(ログファイルがmongodbによって書き込み可能であると仮定します サービスユーザー)。



    1. MongoDB $ sample

    2. MongoDBでは、$ setをどのように使用してネストされた値/埋め込みドキュメントを更新しますか?

    3. MongoDBドキュメント内の特殊文字を含む文字列を検索しています

    4. ElastiCache統合の開始