私はこれを使用しました指示する私のOS Xコンピュータにmongodbをインストールします。ただし、root所有のファイルを作成せずにローカルユーザー(markdsievers)を使用してインストール/usr/local/mongodb
しますusr/local/mongodb_data
。すべてのファイルとサブディレクトリをchmodedしてchownしましたrwxrwxr-x markdsievers staff
。
ユーザーとしてmarkdsievers
次のコマンドを使用すると、エラーなしでデータベースを起動できます。
$ sudo mongod --dbpath=/usr/local/mongodb_data
しかし、次のように始めると:
$ mongod --dbpath=/usr/local/mongodb_data/
私は得る:
Unable to create / open lock file for lockfilepath: /usr/local/mongodb_data/mongod.lock errno:13 Permission denied
私がここで何を見逃しているのでしょうか?
ベストアンサー1
まず、余談:/usr/local/mongodb_data
mongoデータを保存するのが少し奇妙に見えます。ほとんどのバックストレージは、または/var/
独自のインストールアプリケーションの場合/var/local/
。を参照してhier(7)
ください。ファイルシステム階層標準詳細については。 (FHSの名前は間違っています。これは、規則的ではなく説明的なものです)。いいえ標準。しかし、読んでみる価値があります。 )
あなたが次のことをしたので、あなたのmongodb.lock
ファイルはあなたの所有です。root
sudo mongod --dbpath=/usr/local/mongodb_data
sudo(8)
さまざまな方法でプログラムを実行する有効ユーザーID(詳細はseteuid(2)
参照setreuid(2)
)。他のユーザーを指定するオプションがないため、このアカウント-u
はsudo(8)
デフォルトでこのroot
アカウントに設定されています。したがって、ロックファイルはroot
所有者とグループとして生成されます。 (どんな変化があるのか比較してみてくださいsudo id
。id
)
しかし、奇妙なことは、データベースを停止するときにロックファイルを削除する必要があることですmongod
。ロックされたファイルを削除するだけでなく、データがディスクに正しく保存されていることを確認するために正しく停止していることを確認してください。