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

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-org | Meta paket: mongodb-org-database, mongodb-org-tools ve mongodb-mongosh paketlerini kurar |
| mongodb-org-database | Meta paket: mongodb-org-server ve mongodb-org-mongos paketlerini kurar |
| mongodb-org-server | mongod süreci, systemd servis dosyası ve /etc/mongod.conf yapılandırma dosyası |
| mongodb-org-mongos | Sharded cluster yönlendiricisi mongos |
| mongodb-mongosh | MongoDB Shell (mongosh) |
| mongodb-org-tools | Meta paket: mongodb-database-tools ve mongodb-database-tools-extra |
| mongodb-database-tools | mongodump, 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:
sudo apt-get install gnupg curl2. 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:
curl -fsSL https://pgp.mongodb.com/server-9.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-9.gpg \
--dearmor3. 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:
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.listUbuntu 22.04 (Jammy) için:
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.listUbuntu 26.04 (Resolute) için:
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.list4. Paket listesini yenileyin
sudo apt-get updateBu 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:
sudo apt-get install -y mongodb-orgBelirli 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:
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.4apt-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):
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-selectionsKurulumu doğrulama ve servisi başlatma

Önce ikili dosyanın yerinde olduğunu ve doğru sürümü gösterdiğini kontrol edin:
mongod --versionBelgelerdeki ö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:
sudo systemctl start mongod
systemctl status mongod
sudo systemctl enable mongodstatus çı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.
| Komut | Ne yapar |
|---|---|
| sudo systemctl start mongod | Servisi başlatır |
| sudo systemctl stop mongod | Servisi durdurur |
| sudo systemctl restart mongod | Servisi yeniden başlatır |
| systemctl status mongod | Servisin durumunu gösterir |
| sudo systemctl enable mongod | Servisin açılışta başlamasını sağlar |
| sudo journalctl -u mongod | Servisin 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).
| Öğe | Ubuntu'daki varsayılan | Değiştirmek için |
|---|---|---|
| Yapılandırma dosyası | /etc/mongod.conf | Servis bu dosyayı okur |
| Veri dizini | /var/lib/mongodb | storage.dbPath ayarı veya --dbpath |
| Günlük dizini | /var/log/mongodb | systemLog.path ayarı veya --logpath |
| Dinlenen adres | 127.0.0.1 | net.bindIp ayarı veya --bind_ip |
| Port | 27017 | net.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:
mongoshKabukta 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:
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:
- Önce yönetici kullanıcıyı oluşturup erişim denetimini açın (authentication etkinleştirme).
- Uygulama için yalnızca ihtiyaç duyduğu yetkilere sahip ayrı bir kullanıcı tanımlayın (kullanıcı ve rol yönetimi).
bindIpdeğerine0.0.0.0yazmak yerine özel veya iç ağ arayüzünü ekleyin; belgeler uzak bağlantı için özel ya da iç ağ arayüzüne bağlanmayı önerir.- Güvenlik duvarında 27017 portunu yalnızca uygulama sunucularının IP adreslerine açın (UFW rehberi).
- Kalan maddeler için MongoDB güvenlik kontrol listesini ve genel sunucu tarafı için VPS güvenlik sertleştirme yazısını uygulayın.
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:
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.confKurulumdan 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

- Dağıtımın
mongodbpaketiyle 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çinjammy, 26.04 içinresolutesatı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.
enableadı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:
bindIpdeğ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ı