MongoDB: connect ECONNREFUSED
MongoDBへの接続が拒否された場合のエラー
概要
MongoDBサーバーへの接続が拒否された場合に発生するエラーです。サーバーが起動していない、接続文字列の誤り、認証の問題などが原因です。
エラーメッセージ
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
Error: connect ECONNREFUSED 127.0.0.1:27017
MongoServerSelectionError: connection timed out
原因
- MongoDBが起動していない: サーバープロセスが停止
- 接続文字列の誤り: URI形式が間違っている
- 認証エラー: ユーザー名/パスワードが不正
- ネットワーク問題: ファイアウォール、VPC設定
- IP許可リスト: MongoDB Atlasでのホワイトリスト未設定
- ポート不一致: デフォルト27017以外を使用
解決策
1. MongoDBの起動確認
| |
2. 接続の確認
| |
3. 正しい接続文字列
| |
4. Mongoose での接続
| |
5. Node.js ドライバーでの接続
| |
6. MongoDB Atlas の設定
| |
7. Docker での接続
| |
8. 認証の設定
| |
9. mongod.conf の設定
| |
10. 接続リトライの実装
| |
11. トラブルシューティング
| |
12. ファイアウォールの設定
| |
接続チェックリスト
| 項目 | 確認方法 |
|---|---|
| プロセス起動 | pgrep mongod |
| ポート待受 | `netstat -tlnp |
| 接続テスト | mongosh --eval "db.adminCommand('ping')" |
| 認証 | 接続文字列にユーザー/パスワードを含める |
| Atlas IP許可 | Network Access で IP を追加 |
よくある間違い
- MongoDB Atlas で IP 許可リストを設定し忘れる
- Docker 内から
localhostで接続しようとする - パスワードに特殊文字があり URL エンコードしていない
authSourceを指定し忘れる
関連エラー
参考リンク
MongoDB の他のエラー
この記事は役に立ちましたか?