2

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 をサービスとして実行できますか?

前もって感謝します。

4

1 に答える 1