Ulaşım
- Adres:Batıkent Mh. 8910 Sk. 6. Etap 1H No: 18 Yeni Toki Eyyübiye / Şanlıurfa (Yeni Alım Satım Karşısı)
- Telefon:0 (545) 528 88 93
- eMail: info@alestaweb.com
MongoDB'ye bağlanmaya çalışırken "ECONNREFUSED" veya "connection timeout" hatası mı alıyorsunuz? Bu yaygın sorun genellikle basit konfigürasyon hatalarından kaynaklanır. Alesta Web olarak bu rehberde MongoDB connection error çözümlerini adım adım göstereceğiz!
Alesta Web ekibi olarak en çok karşılaştığımız MongoDB hataları şunlar:
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
at connectionFailureError
Error: connect ECONNREFUSED 127.0.0.1:27017
MongooseServerSelectionError: connect ETIMEDOUT MongoTimeoutError: Server selection timed out after 30000 ms
MongoError: Authentication failed MongoServerError: bad auth : Authentication failed
Bu hataların hepsinin çözümü var. Hadi sırayla bakalım!
İlk ve en önemli adım: MongoDB servisi çalışıyor mu?
# Servis durumunu kontrol et sudo systemctl status mongod # Eğer çalışmıyorsa başlat sudo systemctl start mongod # Otomatik başlatmayı aktifleştir sudo systemctl enable mongod
# PowerShell'de (Admin olarak) Get-Service MongoDB # Servisi başlat Start-Service MongoDB # veya Services.msc'den: 1. Windows + R tuşla 2. services.msc yaz 3. MongoDB Server bul 4. Sağ tık > Start
# Homebrew ile kurulduysa brew services list # Başlat brew services start mongodb-community # veya manuel mongod --config /usr/local/etc/mongod.conf
Alesta Web İpucu: Çoğu zaman sorun basitçe MongoDB'nin çalışmıyor olması. İlk bu adımı kontrol edin!
● mongod.service - MongoDB Database Server Loaded: loaded Active: active (running)
Yanlış connection string çok yaygın bir hata kaynağı.
// Yerel bağlantı (Local connection) mongodb://localhost:27017/mydb // Authentication ile mongodb://username:password@localhost:27017/mydb // Replica Set ile mongodb://localhost:27017,localhost:27018/mydb?replicaSet=rs0 // MongoDB Atlas mongodb+srv://username:password@cluster.mongodb.net/mydb
// ❌ YANLIŞ - Eksik protokol
mongoose.connect('localhost:27017/mydb');
// ❌ YANLIŞ - Yanlış port
mongoose.connect('mongodb://localhost:27018/mydb');
// ✅ DOĞRU
mongoose.connect('mongodb://localhost:27017/mydb');
// ✅ DOĞRU - Options ile
mongoose.connect('mongodb://localhost:27017/mydb', {
useNewUrlParser: true,
useUnifiedTopology: true
});
MongoDB Atlas kullanıyorsanız mongodb+srv:// protokolünü kullanmalısınız. Normal mongodb:// çalışmaz!
Firewall MongoDB portunu (27017) engelliyor olabilir.
# Port durumunu kontrol et sudo ufw status # MongoDB portunu aç sudo ufw allow 27017 # Sadece belirli IP'den izin ver (daha güvenli) sudo ufw allow from 192.168.1.0/24 to any port 27017
# Portu aç sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent # Firewall'ı yeniden yükle sudo firewall-cmd --reload
# PowerShell (Admin) New-NetFirewallRule -DisplayName "MongoDB" -Direction Inbound -Protocol TCP -LocalPort 27017 -Action Allow # veya Windows Defender Firewall'dan: 1. Control Panel > Windows Defender Firewall 2. Advanced Settings 3. Inbound Rules > New Rule 4. Port > TCP > 27017 > Allow
Alesta Web olarak güvenlik önerisi: Production'da sadece gerekli IP'lere izin verin!
MongoDB varsayılan olarak sadece localhost'tan bağlantı kabul eder.
# Linux: /etc/mongod.conf # Windows: C:\Program Files\MongoDB\Server\7.0\bin\mongod.cfg # macOS: /usr/local/etc/mongod.conf # Varsayılan (sadece localhost) net: port: 27017 bindIp: 127.0.0.1 # Tüm IP'lerden bağlantı (DİKKAT: Güvenlik riski!) net: port: 27017 bindIp: 0.0.0.0 # Belirli IP'ler (Önerilen) net: port: 27017 bindIp: 127.0.0.1,192.168.1.100
# Linux sudo systemctl restart mongod # Windows Restart-Service MongoDB # macOS brew services restart mongodb-community
bindIp: 0.0.0.0 kullanıyorsanız mutlaka authentication aktifleştirin ve firewall kuralları ekleyin. Aksi halde veritabanınız internete açık olur!
Yavaş ağlarda veya uzak sunucularda timeout süresini artırmanız gerekebilir.
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydb', {
serverSelectionTimeoutMS: 5000, // Server seçim timeout
connectTimeoutMS: 10000, // Bağlantı timeout
socketTimeoutMS: 45000, // Socket timeout
maxPoolSize: 10, // Max connection pool
minPoolSize: 2 // Min connection pool
});
const { MongoClient } = require('mongodb');
const client = new MongoClient('mongodb://localhost:27017', {
serverSelectionTimeoutMS: 5000,
connectTimeoutMS: 10000,
socketTimeoutMS: 45000
});
await client.connect();
Alesta Web İpucu: Production'da timeout değerlerini çok yüksek tutmayın. Hızlı fail etmek bazen daha iyi!
Docker kullanıyorsanız network ayarlarına dikkat edin!
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- MONGO_URI=mongodb://mongo:27017/mydb
depends_on:
- mongo
mongo:
image: mongo:7
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
volumes:
mongo-data:
// ❌ YANLIŞ - Docker içinden localhost çalışmaz mongodb://localhost:27017/mydb // ✅ DOĞRU - Service adını kullan mongodb://mongo:27017/mydb // Host makineden bağlanıyorsanız mongodb://localhost:27017/mydb // Bu çalışır
Docker container'lar kendi network'lerinde çalışır. Container içinden localhost o container'ın kendisini gösterir, host makineyi değil!
Cloud-based MongoDB kullanıyorsanız farklı sorunlar olabilir.
1. MongoDB Atlas Dashboard'a git 2. Network Access'e tıkla 3. IP Address ekle 4. "Add Current IP Address" veya 0.0.0.0/0 (development için)
// Atlas connection string formatı
mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/mydb?retryWrites=true&w=majority
// Node.js örneği
mongoose.connect(process.env.MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
retryWrites: true
});
Atlas'ta Database Access bölümünden kullanıcı oluşturduğunuzdan emin olun. Cluster admin şifresi database şifresi DEĞİL!
Şifrenizde @, #, % gibi özel karakterler varsa URL encode edin! Örn: pa$$word → pa%24%24word
Alesta Web olarak tüm çözümleri test ettik.
Artık MongoDB connection error geride kaldı! Alesta Web olarak hazırladığımız bu rehberle bağlantı sorunlarınızı çözebilirsiniz.
Hızlı Özet / Quick Summary:
Faydalı Linkler / Useful Links:
© 2025 AlestaWeb - Tüm hakları saklıdır. | MongoDB Connection Error Fix Guide