openSUSE Tumbleweed で MongoDB 3.6.2 を使用しています。今日、mongo シェルを開こうとすると、接続エラーが発生しました。を使用してmongodb.serviceのステータスを確認したところ
sudo systemctl status mongodb
それは示した
Active: failed
あまり有益な情報なしで。それから私はチェックしました
sudo mongod --repair
次のエラーが見つかりました。
STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
そこで、/etc/mongodb.conf ファイルを確認すると、ストレージ部分は次のようになります。
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine: mmapv1
# mmapv1:
# wiredTiger: true
ネットワーク部分は次のようになります。
net:
port: 27017
bindIp: 127.0.0.1,::1
ipv6: true
このファイルの他の部分でこのエラーが発生する可能性は低いため、省略しました。
マシンでipv6がオンになっているとは思いませんが、設定しようとしたため、これもエラーの原因にはなりません
ipv6: false
それでもうまくいきませんでした。
問題は、通常mongodbをサービスとして作成し、起動時に自動的に起動できるようにすることです
sudo systemctl start mongodb
sudo systemctl enable mongodb
そして、これは今日までうまくいきました。ただし、手動で実行すると
sudo mongod --dbpath /var/lib/mongodb --port 27017
それは正しく動作します。そのため、mongodb はまだ新しい dbpath /var/lib/mongodb を認識していないようです。私は走った
sudo mongod --config /etc/mongodb.conf
しかし、これは役に立たなかったようです。
お知らせ下さい。--dbpath を毎回手動で指定する必要がありますか? .conf ファイルを使用して、引き続き mongodb をサービスとして実行できますか?
前もって感謝します。