トラブルシューティング
項目一覧
公開キーを取得する際のエラー
MongoDB Community Edition のインストール手順の Import the public key used by the package management systemステップで、 "gpg: no valid OpenPGP data found."
エラーが発生する可能性があります。
ドキュメントに記載されているとおりにコマンドを正確にコピーしていることを確認してください。操作は OK
の応答を返します。
MongoDB 公開 GPG キーがシステムに存在していることを確認するには、ターミナルで次のコマンドを実行します。
sudo apt-key list
出力には、次のようなエントリが含まれている必要があります。
/etc/apt/trusted.gpg -------------------- pub rsa4096 2018-04-18 [SC] [expires: 2023-04-17] E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B uid [ unknown] MongoDB 6.0 Release Signing Key <packaging@mongodb.com>
実行時のエラー sudo apt update
MongoDB コミュニティ エディション のインストール 手順の中で sudo apt-get update
を実行中に次のようなエラーが 1 つ以上発生する場合があります。
W: GPG error: https://repo.mongodb.org/apt/ubuntu <release>/mongodb-org/6.0 Release: \ The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4B7C549A058F8B6B E: The repository 'https://repo.mongodb.org/apt/ubuntu <release>/mongodb-org/6.0 Release' \ is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
これらのエラーは MongoDB コミュニティ エディション のインストール 手順の Import the public key used by the package management system において、MongoDB 公開 GPG キーが追加されなかったことを示しています。
MongoDB コミュニティ エディション のインストール手順の Import the public key used by the package management system ステップを繰り返すことで、通常、この問題は解決します。ドキュメントに記載されているとおりにコマンドとキーを正確にコピーしていることを確認してください。
MongoDB の公開 GPG キーがシステムに存在していることを検証するには、ターミナルで次のコマンドを実行します。
sudo apt-key list
出力には、次のようなエントリが含まれている必要があります。
-------------------- pub rsa4096 2018-04-18 [SC] [expires: 2023-04-17] E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B uid [ unknown] MongoDB 6.0 Release Signing Key <packaging@mongodb.com>
実行時のエラー sudo apt install -y mongodb-org
MongoDB コミュニティ エディション のインストール手順の Create a list file for MongoDB において sudo apt install -y mongodb-org
を実行中に次のようなエラーが発生する場合があります。
Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package mongodb-org
このエラーは /etc/apt/sources.list.d/mongodb-org-6.0.list
が正しく構成されていないか、欠落している可能性があることを示します。
mongodb-org-6.0.list
ファイルの内容を確認するには、ターミナルまたは shell で次のコマンドを実行してください。
cat /etc/apt/sources.list.d/mongodb-org-6.0.list
上記の手順で使用している Ubuntu バージョンのドキュメントとファイルの内容が完全に一致しない場合、ファイルを削除し Create a list file for MongoDB ステップを繰り返します。ファイルが存在しない場合、ステップの一部として作成します。
mongodb-org-6.0.list
ファイルの存在と内容が正しいことを確認したら、sudo apt update
を実行して apt
リポジトリをアップデートし、sudo apt install -y mongodb-org
を再試行します。
次の理由によりパッケージがインストール不能 dpkg-deb: error
mongodb-org
パッケージをインストールする際、次のようなエラーが発生する場合があります。
dpkg: error processing archive /var/cache/apt/archives/mongodb-org-server_6.0.0_amd64.deb (--unpack): trying to overwrite '/usr/bin/mongod', which is also in package mongodb-server-core 1:3.6.3-0ubuntu1
このエラーは、公式の MongoDB Inc. mongodb-org
パッケージをインストールする前に、システムに Ubuntu mongodb
パッケージがインストールされていることを示しています。ホストに Ubuntu mongodb
パッケージがインストールされているかを確認するには、ターミナルまたは shell で次のコマンドを実行してください。
sudo apt list --installed | grep mongo
次のような出力が表示された場合、 MongoDB コミュニティ エディション のインストール手順を再試行する前に、Ubuntu mongodb
パッケージをアンインストールする必要があります。
mongodb/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed] mongodb-clients/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic] mongodb-server/bionic,bionic,now 1:3.6.3-0ubuntu1 all [installed,automatic] mongodb-server-core/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic]
インストール手順を再試行する前に、ターミナルまたは shell で次のコマンドを実行し、Ubuntu mongodb
パッケージを完全に削除してください。
sudo apt remove mongodb sudo apt purge mongodb sudo apt autoremove
注意
sudo apt purge mongodb
は Ubuntu mongodb
パッケージによってインストールされたデフォルトの構成ファイルを削除します。構成ファイルを変更し、 変更内容を保持したい場合は、ファイルを /home/your-user-name
などの別のディレクトリにコピーします。
出力に mongodb-org
バイナリと mongodb
バイナリが混在している場合は、Ubuntu mongodb
パッケージの削除と消去を試みる前に、まず mongodb-org
パッケージで apt remove
、apt
purge
、およびapt autoremove
のコマンドを実行する必要があります。MongoDB 関連のパッケージをすべてクリアした後、インストール手順を再試行してください。
mongod
によるソケットのオープンに関するエラーの報告
mongod
を起動する際、Socket is already in use
または Failed to unlink socket file
エラーが発生する可能性があります。これらのエラーは通常、 mongod
プロセス用に構成されたポートを、別のプロセス(通常はシステム上で実行中の別のmongod
)が使用していることを示します。
次の例では、ss
ユーティリティを使用して、LISTEN
(-l
)状態にあるすべてのオープン TCP(-t
)または UDP(-u
)ソケットと、サービス名やホスト名(-n
)を解決せずに各ソケット(-p
)を使用しているプロセスをリストします。
sudo ss -tulpn
次の部分的な出力は、 27017
ポートでlisten している mongod
プロセスを示しています。同じポートで別の mongod
プロセスを実行しようとすると、ソケット エラーが発生します。
Netid State Local Address:Port udp UNCONN 127.0.0.53%lo:53 users:(("systemd-resolve",pid=663,fd=12)) udp UNCONN 10.1.16.87%enp0s3:68 users:(("systemd-network",pid=652,fd=15)) tcp LISTEN 127.0.0.53%lo:53 users:(("systemd-resolve",pid=663,fd=13)) tcp LISTEN 0.0.0.0:22 users:(("sshd",pid=819,fd=3)) tcp LISTEN 192.168.1.15:27017 users:(("mongod",pid=10027,fd=12)) tcp LISTEN 127.0.0.1:27017 users:(("mongod",pid=10027,fd=11)) tcp LISTEN ::]:22 users:(("sshd",pid=819,fd=4))
システムにおいて mongod
またはその他のシステム プロセスを目的のポートで実行している場合、実行中のプロセスをシャットダウンするか、新規の mongod
プロセス用に新しいポートを選択する必要があります。net.port
構成ファイルオプションを指定し、 mongod
が listen するポートを変更できます。
mongod
によるデータディレクトリに関するエラーの報告
mongod
プロセス ログにおいて、次のようなエラーが発生する場合があります。
Data directory ... not found Attempted to create lock file on a read-only directory: ...
通常、これらのエラーは、MongoDB データディレクトリが存在しないか、 mongod
にアクセスできないことを示しています。
データディレクトリが存在していること
データディレクトリは構成ファイル 内のstorage.dbPath
設定、またはコマンドライン上の mongod
に対する --dbpath
オプションで指定されます。
apt
パッケージ マネージャーを使用して MongoDB をインストールした場合、デフォルトの/etc/mongod.conf
構成ファイルはstorage.dbPath
を/var/lib/mongodb
に設定します。コマンドラインで
mongod
を実行し、--dbpath
オプションを完全に削除すると、MongoDB はデフォルトで/data/db
の--dbpath
を使用します。
上記のデータディレクトリ パスのいずれかを使用するか、構成ファイルまたはコマンドラインで独自のパスを指定するかに関わらず、 mongod
を起動する前に、ファイルシステム上にデータディレクトリが存在することを確認してください。mkdir
コマンドを使用して Ubuntu 上にディレクトリを作成できます。
データディレクトリがアクセス可能であること
mongod
がデータディレクトリの内容を読み取り、書込み (write)、および移動できるようにするには ( rwx
ユーザーまたはグループの権限)、データディレクトリに適切な権限と所有権を設定する必要があります。
mongod
を起動する前に、 chown
と chmod
を使用して権限を変更し、 user:group
所有権を適切に設定します
データディレクトリを使用して を起動していますmongod
mongod
をサービスとして起動するユーザー( sudo
systemctl start mongod
または sudo service mongod start
のいずれかを使用する場合など)に対してこれらのエラーが表示されるのは、通常/etc/mongod.conf
内のデフォルトの dbPath
値を次のように変更した場合のみです。
mongodb
ユーザーまたはmongodb
グループに対してディレクトリとその内容の読み取り、書込み (write)、または実行(rwx
)が許可されていないディレクトリの場合、またはディレクトリが存在しない場合。
サービス定義を使用せずに mongod
を起動するユーザー(たとえば、ターミナルを使用してmongod
を起動するユーザー)に対して、通常、次の場合にこれらのエラーが表示されます。