web-dev-qa-db-ja.com

サービスmongodを開始できません。dbpathを変更するときに、mongod.lockの許可が拒否されました

私がやりたいこと:mongodbのdbpathを/ var/lib/mongodbから/ home/user/mongodb/dataに変更します

私はdbバージョンv3.4.7を使用しています

私がやったこと

mkdir -p ~/mongodb/data
Sudo chown -R mongodb:mongodb  /home/user/mongodb

/etc/mongodb.confを変更します

storage:
  dbPath: /home/user/mongodb/data/
  journal:

Sudo mongod -f /etc/mongod.conf 

これは機能します。また試しました

Sudo mongod --dbpath /home/user/mongodb/data/ 

コマンドは正常に動作します

Sudo service mongod start

コマンドは失敗します。ログファイルを確認します。

権限が拒否されました: "/home/user/mongodb/data/mongod.lock"、終了しています

何が起こっている?私は知っているすべてを試しました。 chmod 777をロックファイルに設定しようとしても、アクセスが拒否されました。

2
tritium_3

次のコマンドを入力した場合:

Sudo chown -R mongodb:mongodb  /home/user/mongodb
Sudo service mongod restart

それが動作します!

ここでの問題は、コマンドSudo mongod --dbpath /home/user/mongodb/data/ ROOTが所有するファイルを作成したもの/home/user/mongodb/data/ディレクトリと「通常の」mongodbユーザーには、それらを上書きする権限がありません。

したがって、rootとしてmongodを起動しないでくださいOR実行する場合は、これらのデータファイルの所有権をmongodbにリセットしてください。

1
JJussi

Centos 7でMongo 4を使用して「Sudo mongod --dbpath/path/to/mongo」を実行します。問題はありませんが、ここで推奨されているように修復または機能させるには、削除してインストールする必要があります。

削除するときは、正しいコマンドを実行して最初からやり直すようにしてください。

  • Sudo yum remove mongodb-org *(すべての構成を削除するため)

次に、再インストールして続行します。

  • Sudo yum install -y mongodb-org
  • Sudo systemctl stop mongod
  • mv/var/lib/mongo/{path}/mongo
  • Sudo vi /etc/mongod.conf(インラインdbPathはパスを "/ {path}/mongo"に変更します)
  • chown mongod:mongod -R/{パス}/mongo /
  • Sudo systemctl start mongod