15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
18.09.2025
1 +1

VPS’de MongoDB Nasıl Kurulur ve Yapılandırılır (Tam 2024 Rehberi)

MongoDB, dünyada en yaygın olarak benimsenen NoSQL veritabanlarından biridir — ve bunun iyi nedenleri vardır. Esnek belge modeli, yüksek verimlilik okuma/yazma performansı ve yerel yatay ölçeklenebilirliği, modern API’ler, SaaS platformları, CRM’ler, e-ticaret motorları ve veri yoğun uygulamalar için tercih edilen arka uç haline getirir. Yönetilen bulut veritabanı hizmetlerinin aksine, MongoDB’yi kendi VPS Hosting üzerinde çalıştırmak, performans ayarlaması, güvenlik sertleştirmesi ve uzun vadeli maliyetler üzerinde tam kontrol sağlar.

Bu kılavuz, bir Linux VPS üzerinde üretim sınıfı MongoDB Community Edition 8.0 kurulumunda size yol gösterir — Debian 12 ve Ubuntu LTS için resmi depo kurulumu, hizmet yönetimi, kullanıcı ve veritabanı oluşturma, güvenlik sertleştirmesi (kimlik doğrulama, ağ bağlama, güvenlik duvarı kuralları), yedekleme stratejileri ve yaygın sorun giderme adımlarını kapsar. İlk uygulamanızı başlatıyor olsanız da mevcut bir iş yükünü taşıyor olsanız da, bu kılavuz MongoDB’yi ilk günden itibaren güvenilir bir şekilde çalıştırır.

İçindekiler

  1. Ön Koşullar
  2. Debian 12 (Bookworm) Üzerine MongoDB Yükleyin
  3. Ubuntu LTS (24.04 / 22.04) Üzerine MongoDB Yükleyin
  4. MongoDB Hizmetini Başlatın ve Etkinleştirin
  5. Veritabanları ve Kullanıcılar Oluşturun
  6. MongoDB Örneğinizi Güvenli Hale Getirin
  7. Yedekleme ve Geri Yükleme
  8. Yaygın Sorunları Giderme
  9. Son Düşünceler

1. Ön Koşullar {#prerequisites}

Başlamadan önce, aşağıdaki koşulların karşılandığından emin olun:

GereksinimAyrıntılar
VPS erişimiRoot veya sudo düzeyinde SSH erişimi
İşletim sistemi64-bit Debian 12 (Bookworm) veya Ubuntu 22.04/24.04 LTS
RAMMinimum 1 GB; üretim için 2 GB+ önerilir
DepolamaSSD destekli depolama kesinlikle önerilir
Güvenlik DuvarıUFW veya iptables mevcut

> Önemli: MongoDB 8.0 resmi olarak Debian 12 ve Ubuntu LTS sürümlerini destekler. Her zaman MongoDB’nin resmi depolarından yükleyin — Linux dağıtımınızla birlikte gelen mongodb paketini **asla** kullanmayın, çünkü bu paket eski, desteklenmiyor ve resmi mongodb-org paketiyle çakışabilir.

Henüz bir sunucunuz yoksa, AlexHost’un VPS Hosting planları, yüksek performanslı altyapıda SSD destekli Linux VPS örnekleri sunar — üretim veritabanı iş yükleri çalıştırmak için ideal.

Sisteminizi Önce Güncelleyin

Her zaman tam güncellenmiş bir sistem ile başlayın:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl

2. Debian 12 (Bookworm) Üzerine MongoDB Yükleyin {#install-debian}

MongoDB, varsayılan Debian depolarında mevcut değildir, bu nedenle resmi MongoDB APT deposunu el ile eklemeniz gerekir.

Adım 1 — MongoDB GPG İmzalama Anahtarını İçe Aktarın

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Bu, paket bütünlüğünü doğrulamak için kullanılan GPG anahtarını indirir ve depolar. Bu adımı atlarsanız, APT MongoDB deposundan paket yüklemeyi reddedecektir.

Adım 2 — Resmi MongoDB Deposunu Ekleyin

echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] 
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/null

Adım 3 — MongoDB Community Edition’ı Yükleyin

sudo apt-get update
sudo apt-get install -y mongodb-org

APT artık en son MongoDB 8.0 sürümünü doğrudan MongoDB’nin resmi CDN’sinden çekecektir.

3. Ubuntu LTS (24.04 / 22.04) Üzerine MongoDB Yükleyin {#install-ubuntu}

İşlem Debian’a neredeyse aynıdır, ancak depo URL’si Ubuntu kod adına göre farklılık gösterir.

Adım 1 — MongoDB GPG İmzalama Anahtarını İçe Aktarın

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

Adım 2 — Ubuntu Sürümünüz İçin Depoyu Ekleyin

Ubuntu 24.04 (Noble Numbat):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Ubuntu 22.04 (Jammy Jellyfish):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Adım 3 — MongoDB Community Edition’ı Yükleyin

sudo apt-get update
sudo apt-get install -y mongodb-org

4. MongoDB Hizmetini Başlatın ve Etkinleştirin {#start-service}

Yüklendikten sonra, MongoDB’yi başlatmak ve sunucu yeniden başlatıldığında otomatik olarak başlaması için yapılandırmak üzere systemctl kullanın.

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pager

Neden daemon-reload?

MongoDB’nin resmi belgeleri, hizmeti başlatmadan önce systemctl daemon-reload çalıştırılmasını özel olarak önerir. Bu adımı atlarsanız ve “Unit mongod.service not found” hatasını görürseniz, önce daemon-reload çalıştırın — systemd’yi diskten birim dosyalarını yeniden okuması için zorlar.

Beklenen Çıktı

Sağlıklı bir MongoDB hizmeti şuna benzer bir çıktı gösterecektir:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
     Active: active (running) since ...

Durum failed veya inactive gösteriyorsa, Sorun Giderme bölümüne atlayın.

5. Veritabanları ve Kullanıcılar Oluşturun {#create-databases-users}

MongoDB, yeni bir kurulumdan sonra varsayılan olarak kimlik doğrulamayı zorlamaz. Bu, kimlik doğrulamayı etkinleştirmeden önce yönetici ve uygulama kullanıcılarınızı oluşturmanız gerektiği anlamına gelir — aksi takdirde kendinizi kilitlemek riskine girersiniz.

MongoDB Kabuğunu Açın

VPS’de MongoDB’ye yerel olarak bağlanın:

mongosh

Adım 1 — Yönetici Kullanıcısı Oluşturun

admin veritabanına geçin ve ayrıcalıklı bir yönetici hesabı oluşturun:

use admin

db.createUser({
  user: "admin",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

> Güvenlik ipucu: STRONG_PASSWORD_HERE yerine en az 20 karakter uzunluğunda rastgele oluşturulmuş bir parola koyun. Bir parola yöneticisi kullanın veya sunucunuzda openssl rand -base64 24 çalıştırarak bir tane oluşturun.

Adım 2 — Uygulama Veritabanı ve Kullanıcısı Oluşturun

Adanmış bir veritabanı ve yalnızca o veritabanına kapsamlı en az ayrıcalık kullanıcısı oluşturun:

use myapp

db.createUser({
  user: "myapp_user",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

Bu, en az ayrıcalık ilkesini takip eder — uygulamanız yalnızca kendi veritabanına okuma/yazma erişimine sahiptir, tüm MongoDB örneğine değil.

Adım 3 — Kullanıcıların Oluşturulduğunu Doğrulayın

use admin
db.getUsers()

Kabuktan çıkın:

exit

6. MongoDB Örneğinizi Güvenli Hale Getirin {#secure-mongodb}

Bu kılavuzun en kritik bölümüdür. Genel internete açık olan yanlış yapılandırılmış MongoDB örnekleri, çok sayıda yüksek profilli veri ihlali için sorumlu olmuştur. MongoDB’nin kendi güvenlik kontrol listesi açıktır: herhangi bir ağa maruz bırakmadan önce örneğinizi sertleştirin.

A) MongoDB’yi Yalnızca Localhost’a Bağlayın (Önerilen Varsayılan)

Varsayılan olarak, MongoDB tüm ağ arayüzlerinde dinleyebilir. Uzaktan erişim için belirli, haklı bir nedeniniz olmadıkça bunu localhost ile sınırlayın.

/etc/mongod.conf dosyasını düzenleyin:

net:
  bindIp: 127.0.0.1

Değişikliği uygulayın:

sudo systemctl restart mongod

Bu, MongoDB’nin yalnızca sunucunun kendisinden erişilebilir olmasını sağlar — genel internetten değil.

B) Kimlik Doğrulamayı Etkinleştirin

Kimlik doğrulama etkinleştirilmeden, herhangi bir yerel işlem parola olmadan MongoDB’ye bağlanabilir. /etc/mongod.conf dosyasını düzenleyin:

security:
  authorization: enabled

Hizmeti yeniden başlatın:

sudo systemctl restart mongod

Şimdi kimlik doğrulamanın uygulandığını test edin:

mongosh -u admin -p --authenticationDatabase admin

C) Güvenlik Duvarını Yapılandırın

Uzaktan bağlantılara izin vermeniz gerekiyorsa (örneğin, farklı bir makinedeki bir uygulama sunucusundan), port 27017 öğesini yalnızca belirli bir güvenilir IP adresine kısıtlayın. Port 27017’yi asla 0.0.0.0/0 öğesine açmayın.

UFW kullanarak:

sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw status

Kuralın etkin olduğunu doğrulayın:

sudo ufw status verbose

D) Güvenli Uzaktan Erişim İçin SSH Tünellemesi Kullanın (En İyi Uygulama)

MongoDB’ye uzaktan erişmenin en güvenli yolu bir SSH tüneli aracılığıyladır. Bu, port 27017’yi tamamen açmaktan kaçınır ve tüm trafiği aktarımda şifreler.

Yerel makinenizden:

ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IP

Ardından yerel MongoDB kabuğunuzdan yerel gibi bağlanın:

mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"

Bu yaklaşım, dizüstü bilgisayarlardan veya uzak iş istasyonlarından üretim veritabanlarına erişen geliştiriciler için kesinlikle önerilir.

Güvenlik Sertleştirmesi Özeti

Güvenlik ÖnlemiYapılandırma KonumuÖncelik
Yalnızca localhost’a bağlayın/etc/mongod.confnet.bindIpKritik
Kimlik doğrulamayı etkinleştirin/etc/mongod.confsecurity.authorizationKritik
Güvenlik duvarı bağlantı noktası kısıtlamasıUFW / iptablesYüksek
Uzaktan erişim için SSH tüneliİstemci tarafı SSH yapılandırmasıYüksek
En az ayrıcalık DB kullanıcılarını kullanınmongoshdb.createUser()Yüksek
MongoDB’yi güncel tutunapt-get upgrade mongodb-orgOrta

7. Yedekleme ve Geri Yükleme {#backup-restore}

Düzenli yedeklemeler, herhangi bir üretim veritabanı için tartışılmaz. MongoDB, MongoDB Database Tools paketinin bir parçası olarak mongodump ve mongorestore içerir.

Sıkıştırılmış Yedek Arşivi Oluşturun

mongodump 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Bu, tüm veritabanlarının mantıksal bir dökümünü içeren tek bir sıkıştırılmış arşiv dosyası oluşturur.

Yedek Arşivinden Geri Yükleyin

mongorestore 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

C

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın