私がやりたいこと: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をロックファイルに設定しようとしても、アクセスが拒否されました。
次のコマンドを入力した場合:
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にリセットしてください。
Centos 7でMongo 4を使用して「Sudo mongod --dbpath/path/to/mongo」を実行します。問題はありませんが、ここで推奨されているように修復または機能させるには、削除してインストールする必要があります。
削除するときは、正しいコマンドを実行して最初からやり直すようにしてください。
次に、再インストールして続行します。