MongoDB Community'yi Ubuntu'ya kurmanın resmî yolu, MongoDB'nin kendi APT deposunu eklemek ve mongodb-org paketini kurmaktır. Kısaca: GPG anahtarını içe aktarırsınız, sürümünüze uygun depo satırını /etc/apt/sources.list.d/ altına yazarsınız, sudo apt-get update ve sudo apt-get install -y mongodb-org komutlarını çalıştırırsınız, ardından servisi sudo systemctl start mongod ile başlatırsınız. Bu yazı MongoDB 9.0 içindir.

Aşağıda her adımı belgelerdeki komutlarla, neden gerektiğiyle ve sık yapılan hatalarla birlikte anlatıyoruz. Ayrıca belirli bir sürümü sabitleme, dizinlerin yerleri, servisi açılışta başlatma, ilk bağlantı ve MongoDB'yi tamamen kaldırma adımları da var. MongoDB'nin ne olduğunu henüz incelemediyseniz MongoDB nedir yazısıyla, tüm konuların sırası için MongoDB öğrenme rehberiyle başlayabilirsiniz.

Başlamadan önce bilmeniz gerekenler

Başlamadan önce bilmeniz gerekenler: Dağıtımın kendi mongodb paketini kullanmayın, Desteklenen Ubuntu sürümleri, Varsayılan olarak yalnızca localhost dinlenir, ulimit değerleri

Dağıtımın kendi mongodb paketini kullanmayın

Ubuntu depolarında bulunan mongodb paketi MongoDB, Inc. tarafından bakımı yapılan bir paket değildir ve resmî mongodb-org paketiyle çakışır. Sisteminizde daha önce bu paketi kurduysanız devam etmeden önce kaldırmanız gerekir. Resmî paket, kendi deposundan her zaman MongoDB 9.0 serisinin en güncel sürümünü getirir.

Desteklenen Ubuntu sürümleri

MongoDB 9.0 belgeleri Ubuntu 26.04 (Resolute), 24.04 (Noble) ve 22.04 (Jammy) için ayrı depo satırları verir. Depo satırlarında amd64 ve arm64 mimarileri tanımlıdır. Kullandığınız sürümün satırını seçin; komutlardaki kod adı (noble, jammy, resolute) dağıtım sürümünü belirtir.

Varsayılan olarak yalnızca localhost dinlenir

Paketle kurulan MongoDB, net.bindIp ayarı 127.0.0.1 olacak şekilde başlar. Yani mongod yalnızca aynı makinedeki istemcilerden bağlantı kabul eder. Uzak istemcilere izin vermek veya bir replica set başlatmak için mongod'u erişilebilir bir ağ arayüzüne bağlamanız gerekir; ancak belgeler bunu yapmadan önce sunucuyu yetkisiz erişime karşı korumanızı şart koşar. En azından kimlik doğrulamayı etkinleştirin ve ağ tarafını sıkılaştırın.

ulimit değerleri

Unix benzeri sistemler bir sürecin kullanabileceği kaynakları sınırlar ve bu sınırlar MongoDB'yi olumsuz etkileyebilir. Açık dosya sayısı sınırı 64000'in altındaysa MongoDB açılışta uyarı üretir. Önerilen değerler ve diğer işletim ayarları production notları yazısında ele alınıyor.

mongodb-org paketinin içinde ne var?

mongodb-org bir meta pakettir; yani kendisi program içermez, başka paketleri çeker. Hangi aracın hangi paketten geldiğini bilmek, sürüm sabitlerken ve sorun giderirken işe yarar:

Paketİçerik
mongodb-orgMeta paket: mongodb-org-database, mongodb-org-tools ve mongodb-mongosh paketlerini kurar
mongodb-org-databaseMeta paket: mongodb-org-server ve mongodb-org-mongos paketlerini kurar
mongodb-org-servermongod süreci, systemd servis dosyası ve /etc/mongod.conf yapılandırma dosyası
mongodb-org-mongosSharded cluster yönlendiricisi mongos
mongodb-mongoshMongoDB Shell (mongosh)
mongodb-org-toolsMeta paket: mongodb-database-tools ve mongodb-database-tools-extra
mongodb-database-toolsmongodump, mongorestore, bsondump, mongoimport, mongoexport, mongostat, mongotop, mongofiles

Yedekleme araçlarının kullanımı mongodump ve mongorestore, veri aktarma araçları mongoexport ve mongoimport yazılarında anlatılıyor.

Adım adım kurulum

1. gnupg ve curl paketlerini kurun

Anahtarı indirmek ve dönüştürmek için bu iki araç gerekir. Sistemde zaten varsa komut bir şey değiştirmez:

bash
sudo apt-get install gnupg curl

2. MongoDB'nin genel GPG anahtarını içe aktarın

APT, depodan gelen paketlerin imzasını bu anahtarla doğrular. Komut, anahtarı indirip /usr/share/keyrings/ altına ikili (dearmor) biçimde yazar:

bash
curl -fsSL https://pgp.mongodb.com/server-9.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-9.gpg \
   --dearmor

3. Depo listesi dosyasını oluşturun

Ubuntu sürümünüze uyan satırı çalıştırın. Her komut /etc/apt/sources.list.d/mongodb-org-9.0.list dosyasını oluşturur ve depo satırında az önce kaydettiğiniz anahtarı signed-by ile gösterir. Ubuntu 24.04 (Noble) için:

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

Ubuntu 22.04 (Jammy) için:

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

Ubuntu 26.04 (Resolute) için:

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

4. Paket listesini yenileyin

bash
sudo apt-get update

Bu komut yeni eklenen depoyu okur. İmza hatası görürseniz 2. adımdaki anahtar dosyasının adıyla depo satırındaki signed-by yolunun aynı olduğunu kontrol edin.

5. MongoDB Community Server'ı kurun

En güncel kararlı sürüm için:

bash
sudo apt-get install -y mongodb-org

Belirli bir sürümü kurmak istiyorsanız her bileşen paketini sürüm numarasıyla birlikte ayrı ayrı belirtmeniz gerekir. Belgelerdeki güncel yama sürümü 9.0.4 ile örnek:

bash
sudo apt-get install -y mongodb-org=9.0.4 mongodb-org-database=9.0.4 mongodb-org-server=9.0.4 mongodb-mongosh mongodb-org-mongos=9.0.4 mongodb-org-tools=9.0.4

apt-get, daha yeni bir sürüm çıktığında paketleri yükseltir. İstenmeyen yükseltmeleri önlemek için paketleri o anki sürümde tutabilirsiniz (hold):

bash
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

Kurulumu doğrulama ve servisi başlatma

Kurulumu doğrulama ve servisi başlatma: sudo systemctl start mongod, sudo systemctl stop mongod, sudo systemctl restart mongod, systemctl status mongod

Önce ikili dosyanın yerinde olduğunu ve doğru sürümü gösterdiğini kontrol edin:

bash
mongod --version

Belgelerdeki örnek çıktı db version 9.0.4 satırıyla başlar ve ardından derleme bilgilerini içeren bir JSON bloğu gelir; modules alanında community görünür. Ardından servisi başlatın, durumunu kontrol edin ve sistem açılışında otomatik başlamasını sağlayın:

bash
sudo systemctl start mongod
systemctl status mongod
sudo systemctl enable mongod

status çıktısında Active: active (running) satırını ve /usr/bin/mongod --config /etc/mongod.conf komut satırını görmelisiniz. Servis durumu ayrıcalık gerektiren bir bilgi olmadığı için status komutu sudo olmadan da çalışır; start, stop, restart ve enable ise root dışındaki kullanıcılar için sudo ister.

KomutNe yapar
sudo systemctl start mongodServisi başlatır
sudo systemctl stop mongodServisi durdurur
sudo systemctl restart mongodServisi yeniden başlatır
systemctl status mongodServisin durumunu gösterir
sudo systemctl enable mongodServisin açılışta başlamasını sağlar
sudo journalctl -u mongodServisin sistem günlüğüne yazdığı mesajları gösterir

systemd ile varsayılan yapılandırmada çalışan mongod, mesajlarını sistem günlüğüne (journal) de yazar; bu yüzden servis açılmıyorsa ilk bakacağınız yer journalctl -u mongod çıktısıdır. systemd'nin genel kullanımı için systemd servis yönetimi yazımıza bakabilirsiniz.

Dizinler ve yapılandırma dosyası

Linux paketleri yapılandırma dosyasını /etc/mongod.conf konumuna koyar; servis systemd ile başlatıldığında bu dosyayı otomatik yükler. Debian ve Ubuntu'da veri dizini /var/lib/mongodb, günlük dizini /var/log/mongodb olarak ayarlanır (RHEL, SUSE ve Amazon Linux'ta veri dizini /var/lib/mongo'dur).

ÖğeUbuntu'daki varsayılanDeğiştirmek için
Yapılandırma dosyası/etc/mongod.confServis bu dosyayı okur
Veri dizini/var/lib/mongodbstorage.dbPath ayarı veya --dbpath
Günlük dizini/var/log/mongodbsystemLog.path ayarı veya --logpath
Dinlenen adres127.0.0.1net.bindIp ayarı veya --bind_ip
Port27017net.port ayarı

Dosyanın YAML yapısı ve tüm ayarlar mongod.conf yapılandırma yazısında ayrıntılı olarak anlatılıyor.

İlk bağlantı ve sağlık kontrolü

mongodb-org paketi mongosh'u da kurduğu için hemen bağlanabilirsiniz. Parametresiz mongosh komutu varsayılan adres olan mongodb://localhost:27017 üzerinden bağlanır:

bash
mongosh

Kabukta sunucunun durumunu serverStatus komutuyla sorgulayabilirsiniz. Aşağıdaki çağrı, çıktıyı kısa tutmak için çoğu bölümü kapatıp yalnızca bellek bilgisini açar:

javascript
db.runCommand( { serverStatus: 1, none: 1, mem: 1 } )

Dönen belgede host, version, process: 'mongod', uptime ve ok: 1 gibi alanlar bulunur. ok: 1 komutun başarıyla çalıştığını gösterir. mongosh'un diğer komutları için mongosh kullanımı yazısına bakın.

Uzaktan erişim açmadan önce

Bir VPS'te çalışan MongoDB'ye uygulama sunucunuzdan bağlanmak istediğinizde bindIp değerini değiştirmeniz gerekir. Bu noktada sıralama önemlidir:

Güncelleme: yama ve ana sürümler

APT ile kurduğunuz MongoDB'yi aynı seri içindeki yama sürümlerine (örneğin 9.0.x) işletim sisteminin paket yöneticisiyle yükseltebilirsiniz. Ana ve ara sürümler arasında geçiş için ise ilgili sürümün kurulum ve yükseltme talimatlarını izlemeniz gerekir; depo satırı da sürüm numarası içerdiği için değişir. Paketleri hold ile sabitlediyseniz yükseltmeden önce bu kilidi kaldırmayı unutmayın.

MongoDB'yi Ubuntu'dan tamamen kaldırma

Paket yöneticisiyle kaldırmak yalnızca programları siler. MongoDB'yi tamamen kaldırmak için yapılandırma dosyasını, veri ve günlük dizinlerini de silmeniz gerekir. Belgelerdeki sıra şöyledir:

bash
sudo systemctl stop mongod
sudo apt purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
sudo rm /etc/mongod.conf

Kurulumdan sonra sırada ne var?

Belgeler kurulumun ardından birkaç adım önerir ve bunlar kendi sunucunuzu yönetirken mantıklı bir sıra oluşturur. İlk olarak temel işlemleri deneyin: bir veritabanı seçin, birkaç belge ekleyin ve sorgulayın (insertOne ve insertMany, find sorguları). İkinci adım erişim denetimidir; tek kullanıcılı bir geliştirme makinesinde bile kimlik doğrulamayı erken açmak, ileride uygulamanın bağlantı ayarlarını değiştirme zahmetini azaltır. Üçüncü adım güvenlik kontrol listesini gözden geçirmektir.

Tek bir mongod yerine birden fazla süreçten oluşan bir yapı kurmak isterseniz iki yol vardır: yüksek erişilebilirlik ve ağ bölünmelerine karşı dayanıklılık için replica set, kapasiteyi yatay olarak büyütmek için sharded cluster. İkisinin de temelinde burada kurduğunuz paketler yer alır; sharded cluster için gereken mongos zaten mongodb-org-mongos paketiyle gelir. Community sürümünden Enterprise sürümüne geçmek için de belgelerde ayrı yükseltme adımları bulunur.

Sık yapılan hatalar

Sık yapılan hatalar: Dağıtımın mongodb paketiyle karıştırmak, Yanlış Ubuntu kod adı, Sürüm sabitlerken bileşenleri yazmamak, enable adımını atlamak
  • Dağıtımın mongodb paketiyle karıştırmak: İki paket çakışır; önce eski paketi kaldırın.
  • Yanlış Ubuntu kod adı: 24.04 için noble, 22.04 için jammy, 26.04 için resolute satırını kullanın.
  • Sürüm sabitlerken bileşenleri yazmamak: Yalnızca meta paket sürümü verilirse bileşenler en güncel sürüme kurulur.
  • enable adımını atlamak: Sunucu yeniden başladığında MongoDB kendiliğinden açılmaz.
  • Varsayılan yolları gelişigüzel değiştirmek: Paket betikleri belirli yollara bağlıdır; değişiklikten sonra servis açılmayabilir.
  • Erişim denetimi olmadan dışa açmak: bindIp değişikliğinden önce mutlaka kimlik doğrulamayı açın ve güvenlik duvarını yapılandırın.

Sık Sorulan Sorular

mongosh ayrıca kurulmalı mı?

Hayır. mongodb-org meta paketi mongodb-mongosh paketini de kurar. Windows'taki durum farklıdır; orada mongosh ayrı indirilir (Windows kurulumu).

Veri dizinini başka bir diske taşıyabilir miyim?

Evet, storage.dbPath ayarıyla. Ancak paket betikleri varsayılan yollara bağlı olduğundan değişikliği dikkatle yapın, servisin yeni dizine yazma izni olduğundan emin olun ve servisi yeniden başlattıktan sonra journalctl -u mongod çıktısını kontrol edin.

Servis neden başlamıyor?

İlk adım sudo journalctl -u mongod ve /var/log/mongodb altındaki günlüğe bakmaktır. Olası nedenler arasında yapılandırma dosyasındaki YAML hataları (YAML girinti için sekme karakterini kabul etmez) ve paket betiklerinin beklediği yolların değiştirilmesi vardır. Bağlantı tarafındaki sorunlar için bağlantı hataları yazısına bakın.

Replica set kurmak için ne gerekir?

Her üye için bir mongod, üyelerin birbirine erişebileceği bir ağ ayarı ve replSetName yapılandırması gerekir. Adımlar replica set kurulumu yazısında.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: MongoDB öğrenme rehberi · mongod.conf yapılandırma · Authentication etkinleştirme · Güvenlik kontrol listesi · Linux sunucu yönetimi temelleri · UFW güvenlik duvarı