Linux Üzerine MongoDB Kurulumu Kapsamlı Rehber
MongoDB, modern uygulamalar için tasarlanmış, açık kaynaklı, belge tabanlı (document-oriented) bir NoSQL veritabanıdır. Geleneksel ilişkisel veritabanlarının aksine, MongoDB verileri JSON benzeri BSON (Binary JSON) formatında depolar, bu da geliştiricilere esneklik ve ölçeklenebilirlik sağlar. Büyük veri kümelerini işlemek, yüksek performanslı uygulamalar geliştirmek ve hızla değişen şemalarla çalışmak isteyenler için ideal bir çözümdür. Bu teknik makale, Linux işletim sistemleri üzerine MongoDB’nin en güncel sürümlerinden birinin (örneğin 6.0 veya üzeri) nasıl kurulacağını, yapılandırılacağını ve temel düzeyde nasıl kullanılacağını adım adım açıklamaktadır. Amacımız, hem yeni başlayanlar hem de deneyimli sistem yöneticileri için kapsamlı ve anlaşılır bir rehber sunmaktır.
MongoDB Nedir ve Neden Kullanılır?
MongoDB, 2009 yılında piyasaya sürüldüğünden bu yana NoSQL veritabanları arasında lider konuma gelmiştir. Temel özellikleri arasında şunlar bulunur:
* Belge Tabanlı Model: Veriler, esnek şemalı JSON belgeleri olarak depolanır. Bu, uygulamaların veri yapılarını doğrudan eşleştirmeyi kolaylaştırır ve şema değişikliklerini basitleştirir.
* Yüksek Performans: Sorgu performansı, indeksleme ve yerel bellek içi işlemler sayesinde optimize edilmiştir.
* Ölçeklenebilirlik: Yatay ölçeklenebilirlik (sharding) özelliği sayesinde, veri yükü arttıkça ek sunucular ekleyerek kapasite artırılabilir.
* Yüksek Erişilebilirlik: Replika setleri (replica sets) aracılığıyla veri yedekliliği ve otomatik yük devretme (failover) sağlar. Bu, bir sunucunun çökmesi durumunda bile veritabanının çalışmaya devam etmesini garanti eder.
* Zengin Sorgu Dili: SQL’e benzer, ancak daha güçlü ve esnek bir sorgu diline sahiptir. Agregasyon çerçevesi (aggregation framework) ile karmaşık veri analizleri yapılabilir.
Bu özellikler sayesinde MongoDB; içerik yönetim sistemleri, e-ticaret platformları, mobil uygulamalar, IoT çözümleri, gerçek zamanlı analitik ve büyük veri projeleri gibi çeşitli alanlarda yaygın olarak kullanılmaktadır.
Ön Koşullar ve Hazırlık
MongoDB kurulumuna başlamadan önce, sisteminizin belirli gereksinimleri karşıladığından ve gerekli ön hazırlıkların yapıldığından emin olmanız önemlidir.
Linux Dağıtımları
Bu rehberde, en yaygın kullanılan iki Linux dağıtım ailesine odaklanacağız:
* Debian/Ubuntu tabanlı sistemler: Ubuntu Server 20.04 LTS (Focal Fossa), 22.04 LTS (Jammy Jellyfish), Debian 10 (Buster), Debian 11 (Bullseye).
* Red Hat Enterprise Linux (RHEL)/CentOS/Fedora tabanlı sistemler: RHEL 7, 8, 9; CentOS 7, Stream 8, Stream 9; Fedora 36, 37, 38.
Sistem Gereksinimleri
* İşletim Sistemi: Desteklenen 64-bit Linux dağıtımlarından biri.
* RAM: Minimum 2 GB RAM önerilir. Üretim ortamları için 4 GB veya daha fazlası tavsiye edilir. Özellikle büyük veri kümeleri veya yoğun sorgu yükü olan sistemlerde daha fazla RAM gereklidir.
* CPU: En az 2 çekirdekli bir işlemci.
* Disk Alanı: MongoDB, veri dosyaları için disk alanı kullanır. Kurulum için minimum 5 GB boş alan önerilir, ancak veritabanınızın büyüklüğüne göre bu değer önemli ölçüde artacaktır. Performans için SSD kullanılması şiddetle tavsiye edilir.
* Ağ Bağlantısı: İnternet erişimi (kurulum paketlerini indirmek için) ve 27017 numaralı TCP portunun açık olması (varsayılan MongoDB portu).
Kullanıcı İzinleri
Kurulum ve yapılandırma işlemleri için sudo yetkisine sahip bir kullanıcıya ihtiyacınız olacaktır. Tüm komutlar sudo önekiyle çalıştırılacaktır.
Sistem Güncellemesi
Kuruluma başlamadan önce sistem paket listesini ve kurulu paketleri güncellemek iyi bir uygulamadır:
Debian/Ubuntu için:
sudo apt update
sudo apt upgrade -y
RHEL/CentOS/Fedora için:
sudo yum update -y # CentOS/RHEL 7
sudo dnf update -y # CentOS/RHEL 8+, Fedora
Bu adımlar, olası bağımlılık sorunlarını önlemeye yardımcı olur ve sisteminizin en güncel güvenlik yamalarına sahip olmasını sağlar.
MongoDB Kurulum Yöntemleri
MongoDB’yi Linux üzerine kurmanın birkaç yolu vardır:
1. Paket Yöneticisi ile Kurulum (Önerilen): MongoDB’nin resmi depolarını sisteminize ekleyerek apt (Debian/Ubuntu) veya yum/dnf (RHEL/CentOS/Fedora) gibi paket yöneticileri aracılığıyla kurulum yapmak en kolay ve en yaygın yöntemdir. Bu yöntem, bağımlılıkları otomatik olarak yönetir ve güncellemeleri kolaylaştırır.
2. Manuel Kurulum (Tarball): MongoDB’nin resmi web sitesinden indirilen bir tarball (sıkıştırılmış arşiv) dosyasını manuel olarak çıkarmak ve yapılandırmak. Bu yöntem, belirli bir sürümü kurmanız gerektiğinde veya özel bir kurulum yoluna ihtiyacınız olduğunda kullanılabilir, ancak daha fazla manuel yapılandırma gerektirir.
3. Docker ile Kurulum: MongoDB’yi bir Docker konteyneri içinde çalıştırmak. Bu yöntem, geliştirme ve test ortamları için hızlı ve izole bir çözüm sunar, ancak bu rehberin ana odak noktası değildir.
Bu rehberde, paket yöneticisi ile kurulum yöntemine odaklanacağız, çünkü üretim ortamları için en pratik ve güvenilir yaklaşımdır.
Ubuntu/Debian Üzerine MongoDB Kurulumu
Bu bölümde, Ubuntu veya Debian tabanlı bir Linux dağıtımına MongoDB 6.0 (veya benzer bir güncel sürüm) kurmak için adım adım talimatları bulacaksınız.
Adım 1: GPG Anahtarını İçe Aktarma
MongoDB paketlerinin gerçekliğini doğrulamak için MongoDB’nin GPG anahtarını sisteminize eklemeniz gerekir. Bu, indirdiğiniz paketlerin MongoDB tarafından imzalandığından ve üzerinde oynanmadığından emin olmanızı sağlar.
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
Bu komut, MongoDB’nin GPG anahtarını indirir ve apt paket yöneticisinin güvendiği anahtarlar listesine ekler. 6.0 sürüm numarasını kurmak istediğiniz sürüme göre değiştirebilirsiniz (örneğin 7.0.asc gibi). Komutun çıktısı OK olmalıdır.
Not: apt-key komutu Debian 11 (Bullseye) ve Ubuntu 22.04 (Jammy Jellyfish) ve sonraki sürümlerinde kullanımdan kaldırılmıştır. Alternatif olarak, anahtarı doğrudan /etc/apt/trusted.gpg.d/ dizinine yerleştirebilirsiniz:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-org-6.0.gpg
Bu yeni yöntem, anahtarın daha güvenli bir şekilde depolanmasını sağlar.
Adım 2: MongoDB Deposu Ekleme
Şimdi, MongoDB paketlerinin bulunduğu depoyu sisteminizin apt kaynak listesine eklemeniz gerekiyor. Bu, apt‘nin MongoDB paketlerini bulabilmesini sağlar.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
Bu komutta dikkat etmeniz gerekenler:
* focal: Kullandığınız Ubuntu sürümünün kod adıdır. Eğer Ubuntu 22.04 kullanıyorsanız jammy olarak değiştirmelisiniz. Debian kullanıyorsanız debian ve ardından sürüm kod adını (örn. bullseye) kullanmalısınız.
* 6.0: Kurmak istediğiniz MongoDB sürümüdür. Kurmak istediğiniz sürüme göre (örn. 7.0) değiştirmelisiniz.
* amd64,arm64: Desteklenen mimarileri belirtir.
Örnek olarak, Ubuntu 22.04 (Jammy Jellyfish) için MongoDB 6.0 kuruyorsanız:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
Debian 11 (Bullseye) için MongoDB 6.0 kuruyorsanız:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
Adım 3: Yerel Paket Veritabanını Güncelleme
Yeni eklediğiniz depoyu apt‘nin tanıması için paket listesini güncellemeniz gerekir:
sudo apt update
Bu komut, sisteminizin paket yöneticisinin yeni MongoDB deposundaki paket bilgilerini indirmesini sağlar.
Adım 4: MongoDB Paketlerini Kurma
Artık MongoDB’yi kurmaya hazırsınız. mongodb-org paketi, MongoDB sunucusu ve ilgili araçları (shell, import/export araçları vb.) içeren meta bir pakettir.
sudo apt install -y mongodb-org
Bu komut, mongodb-org paketiyle birlikte mongodb-org-server, mongodb-org-mongos, mongodb-org-shell ve mongodb-org-tools gibi tüm gerekli bileşenleri kuracaktır. -y bayrağı, kurulum sırasında gelen onay sorularına otomatik olarak “evet” yanıtı vermeyi sağlar.
Adım 5: MongoDB Servisini Başlatma
Kurulum tamamlandıktan sonra MongoDB servisini başlatın:
sudo systemctl start mongod
mongod, MongoDB veritabanı sürecinin adıdır.
Adım 6: MongoDB Servisinin Durumunu Kontrol Etme
Servisin başarıyla çalışıp çalışmadığını kontrol edebilirsiniz:
sudo systemctl status mongod
Çıktıda active (running) ifadesini görmeniz gerekir. Çıkmak için q tuşuna basın.
Adım 7: MongoDB Servisini Otomatik Başlatmaya Ayarlama
Sistem yeniden başlatıldığında MongoDB’nin otomatik olarak başlaması için servisi etkinleştirin:
sudo systemctl enable mongod
Bu, sistemin önyükleme sırasında mongod servisini otomatik olarak başlatmasını sağlar.
Adım 8: Kurulumu Doğrulama
MongoDB’nin doğru bir şekilde kurulduğunu ve çalıştığını doğrulamak için MongoDB Shell’e bağlanın:
mongosh
Eğer mongosh komutu bulunamazsa, eski sürümlerde mongo komutunu deneyebilirsiniz. Başarılı bir şekilde bağlandığınızda, bir MongoDB istemi (>) görmelisiniz. Veritabanı sürümünü kontrol edebilirsiniz:
db.version()
Çıktı olarak kurulu MongoDB sürümünü (örneğin 6.0.x) görmelisiniz. Shell’den çıkmak için exit yazıp Enter tuşuna basın.
CentOS/RHEL/Fedora Üzerine MongoDB Kurulumu
Bu bölümde, CentOS, RHEL veya Fedora tabanlı bir Linux dağıtımına MongoDB 6.0 (veya benzer bir güncel sürüm) kurmak için adım adım talimatları bulacaksınız.
Adım 1: MongoDB Deposu Oluşturma
CentOS/RHEL/Fedora sistemlerinde yum veya dnf paket yöneticisinin MongoDB paketlerini bulabilmesi için bir .repo dosyası oluşturmanız gerekir.
sudo nano /etc/yum.repos.d/mongodb-org-6.0.repo
Bu komutla nano metin düzenleyicisini kullanarak yeni bir dosya oluşturun ve aşağıdaki içeriği yapıştırın:
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
Notlar:
* $releasever: Bu değişken, işletim sisteminizin sürümünü otomatik olarak algılar (örn. 7 veya 8).
* 6.0: Kurmak istediğiniz MongoDB sürümüdür. Kurmak istediğiniz sürüme göre (örn. 7.0) değiştirmelisiniz.
* baseurl: Eğer Fedora kullanıyorsanız, redhat yerine fedora yazmanız gerekebilir. Ayrıca, $releasever değişkeni bazen doğru değeri döndürmeyebilir; bu durumda manuel olarak (örn. 8 veya 9) yazmanız gerekebilir.
* Örneğin, CentOS Stream 8 için MongoDB 6.0 kuruyorsanız: baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
* Fedora 38 için MongoDB 6.0 kuruyorsanız: baseurl=https://repo.mongodb.org/yum/fedora/38/mongodb-org/6.0/x86_64/
Dosyayı kaydedin ve kapatın (Nano’da Ctrl+O, Enter, Ctrl+X).
Adım 2: MongoDB Paketlerini Kurma
Depo yapılandırmasını tamamladıktan sonra MongoDB paketlerini kurabilirsiniz.
CentOS/RHEL 7 için:
sudo yum install -y mongodb-org
CentOS/RHEL 8+ veya Fedora için:
sudo dnf install -y mongodb-org
Bu komut, mongodb-org paketiyle birlikte MongoDB sunucusu ve ilgili araçları kuracaktır. -y bayrağı, onay sorularına otomatik olarak “evet” yanıtı vermeyi sağlar.
Adım 3: MongoDB Servisini Başlatma
Kurulum tamamlandıktan sonra MongoDB servisini başlatın:
sudo systemctl start mongod
Adım 4: MongoDB Servisinin Durumunu Kontrol Etme
Servisin başarıyla çalışıp çalışmadığını kontrol edin:
sudo systemctl status mongod
Çıktıda active (running) ifadesini görmeniz gerekir. Çıkmak için q tuşuna basın.
Adım 5: MongoDB Servisini Otomatik Başlatmaya Ayarlama
Sistem yeniden başlatıldığında MongoDB’nin otomatik olarak başlaması için servisi etkinleştirin:
sudo systemctl enable mongod
Bu, sistemin önyükleme sırasında mongod servisini otomatik olarak başlatmasını sağlar.
Adım 6: Kurulumu Doğrulama
MongoDB’nin doğru bir şekilde kurulduğunu ve çalıştığını doğrulamak için MongoDB Shell’e bağlanın:
mongosh
Eğer mongosh komutu bulunamazsa, eski sürümlerde mongo komutunu deneyebilirsiniz. Başarılı bir şekilde bağlandığınızda, bir MongoDB istemi (>) görmelisiniz. Veritabanı sürümünü kontrol edebilirsiniz:
db.version()
Çıktı olarak kurulu MongoDB sürümünü (örneğin 6.0.x) görmelisiniz. Shell’den çıkmak için exit yazıp Enter tuşuna basın.
Post-Kurulum ve Temel Yapılandırma
MongoDB kurulumu tamamlandıktan sonra, güvenlik ve erişilebilirlik açısından bazı temel yapılandırmaları yapmanız önemlidir.
Veri Dizinleri ve Log Dosyaları
Varsayılan olarak, MongoDB veri dosyalarını /var/lib/mongo dizininde, log dosyalarını ise /var/log/mongodb/mongod.log dosyasında depolar. Bu dizinlerin ve dosyaların doğru izinlere sahip olduğundan emin olun. Genellikle kurulum, bu izinleri otomatik olarak ayarlar.
* Veri Yolu: /var/lib/mongo
* Log Yolu: /var/log/mongodb/mongod.log
Bu yollar, /etc/mongod.conf yapılandırma dosyasında storage.dbPath ve systemLog.path ayarlarıyla değiştirilebilir.
Güvenlik
MongoDB’nin varsayılan yapılandırması genellikle yalnızca yerel ana bilgisayardan (localhost) erişime izin verir. Üretim ortamlarında, veritabanınızı yetkisiz erişimden korumak için ek güvenlik önlemleri almanız şarttır.
IP Bağlama (Binding IP)
MongoDB sunucusunun hangi IP adreslerinden gelen bağlantıları kabul edeceğini belirler. Varsayılan olarak yalnızca 127.0.0.1 (localhost) adresinden bağlantılara izin verilir.
Yapılandırma dosyası: /etc/mongod.conf
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Varsayılan olarak sadece localhost'tan erişim
* Tüm arayüzlerden erişime izin vermek için (Üretim ortamlarında tavsiye edilmez!):
bindIp: 0.0.0.0
Bu, veritabanınızın internet üzerinden veya ağınızdaki herhangi bir cihazdan erişilebilir olacağı anlamına gelir. Bu ayarı kullanırken çok dikkatli olmalı ve mutlaka güvenlik duvarı kuralları ve kimlik doğrulama ile birlikte kullanmalısınız.
* Belirli IP adreslerinden erişime izin vermek için:
bindIp: 127.0.0.1,192.168.1.100,10.0.0.5
Burada, yalnızca belirtilen IP adreslerinden ve localhost’tan bağlantılara izin verilir.
bindIp ayarında değişiklik yaptıktan sonra MongoDB servisini yeniden başlatmanız gerekir:
sudo systemctl restart mongod
Kimlik Doğrulama (Authentication)
Üretim ortamlarında, MongoDB’ye bağlanmak için kullanıcı adı ve parola gerektiren kimlik doğrulamasını etkinleştirmek zorunludur.
/etc/mongod.conf dosyasını açın ve security bölümünü bulun. Eğer yoksa, ekleyin:
security:
authorization: enabled
Bu ayarı etkinleştirdikten sonra, MongoDB servisini yeniden başlatın:
sudo systemctl restart mongod
Şimdi mongosh ile bağlanmaya çalıştığınızda, kimlik doğrulaması olmadan veritabanı işlemlerini gerçekleştiremeyeceksiniz. Bir yönetici kullanıcısı oluşturmanız gerekecektir.
Örnek yönetici kullanıcısı oluşturma:
1. mongosh ile bağlanın (şimdilik kimlik doğrulaması olmadan, çünkü henüz bir kullanıcı yok):
mongosh
2. admin veritabanına geçin:
use admin
3. Bir yönetici kullanıcısı oluşturun:
db.createUser(
{
user: "adminUser",
pwd: passwordPrompt(), // Parolayı güvenli bir şekilde girmenizi sağlar
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
passwordPrompt() yerine doğrudan parola yazabilirsiniz (pwd: "yourStrongPassword"), ancak bu daha az güvenlidir.
4. Shell’den çıkın:
exit
Şimdi kimlik doğrulaması ile bağlanmak için:
mongosh -u adminUser -p --authenticationDatabase admin
Sizden parola istenecek ve doğru parolayı girdikten sonra veritabanına bağlanabileceksiniz.
Güvenlik Duvarı (Firewall) Ayarları
Eğer MongoDB’ye uzaktan erişime izin verecekseniz (yani bindIp ayarını 127.0.0.1 dışında bir değere ayarladıysanız), sisteminizin güvenlik duvarında 27017 portunu açmanız gerekir.
Ubuntu/Debian (UFW için):
sudo ufw allow 27017/tcp
sudo ufw enable # Eğer ufw etkin değilse
sudo ufw status
CentOS/RHEL/Fedora (FirewallD için):
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Bu adımlar, yalnızca 27017 numaralı port üzerinden gelen TCP bağlantılarına izin verir.
Uzak Bağlantı
MongoDB’ye uzak bir makineden bağlanmak için yukarıdaki bindIp ayarlarını ve güvenlik duvarı kurallarını doğru bir şekilde yapılandırmanız gerekir.
1. bindIp ayarı: MongoDB sunucusunun IP adresini veya 0.0.0.0 (tüm arayüzler) olarak ayarlayın.
2. Güvenlik Duvarı: 27017 portunun açık olduğundan emin olun.
3. Ağ Erişimi: İstemci makinenin sunucuya ağ üzerinden erişebildiğinden emin olun.
Örneğin, uzak bir makineden mongosh ile bağlanmak için:
mongosh --host --port 27017 -u adminUser -p --authenticationDatabase admin
Yapılandırma Dosyası (mongod.conf)
MongoDB’nin ana yapılandırma dosyası /etc/mongod.conf adresinde bulunur. Bu dosya YAML formatındadır ve sunucunun çalışma şeklini belirleyen birçok ayar içerir.
Önemli ayarlar:
* storage.dbPath: Veri dosyalarının depolandığı yol.
* systemLog.path: Log dosyalarının depolandığı yol.
* net.port: MongoDB’nin dinlediği port (varsayılan 27017).
* net.bindIp: MongoDB’nin hangi IP adreslerinden gelen bağlantıları kabul edeceği.
* security.authorization: Kimlik doğrulamasını etkinleştirir veya devre dışı bırakır.
Herhangi bir değişiklik yaptıktan sonra, değişikliklerin etkili olması için MongoDB servisini yeniden başlatmayı unutmayın:
sudo systemctl restart mongod
MongoDB Shell Kullanımı
MongoDB Shell (mongosh), veritabanıyla etkileşim kurmak için kullanılan güçlü bir komut satırı aracıdır.
#### Temel Komutlar
1. Shell’e Bağlanma:
mongosh
Kimlik doğrulaması etkinse:
mongosh -u -p --authenticationDatabase
2. Veritabanlarını Listeleme:
show dbs
3. Veritabanına Geçiş Yapma (veya Oluşturma):
use mydatabase
Eğer mydatabase yoksa, ilk veri ekleme işleminde otomatik olarak oluşturulur.
4. Koleksiyonları Listeleme:
show collections
5. Veri Ekleme (Insert):
db.users.insertOne({ name: "Alice", age: 30, city: "New York" })
db.users.insertMany([
{ name: "Bob", age: 25, city: "London" },
{ name: "Charlie", age: 35, city: "Paris" }
])
6. Veri Sorgulama (Find):
db.users.find() // Tüm belgeleri listeler
db.users.find({ age: { $gt: 28 } }) // Yaşı 28'den büyük olanları listeler
db.users.find({ city: "London" }).pretty() // Okunabilir formatta gösterir
7. Veri Güncelleme (Update):
db.users.updateOne(
{ name: "Alice" },
{ $set: { age: 31, status: "active" } }
)
db.users.updateMany(
{ city: "London" },
{ $inc: { age: 1 } } // Yaşı 1 artır
)
8. Veri Silme (Delete):
db.users.deleteOne({ name: "Charlie" })
db.users.deleteMany({ city: "Paris" })
9. Koleksiyonu Silme:
db.users.drop()
10. Veritabanını Silme:
use mydatabase
db.dropDatabase()
11. Shell’den Çıkma:
exit
Bu komutlar, MongoDB ile çalışmaya başlamak için temel bir referans noktası sağlar. Daha karmaşık sorgular ve işlemler için MongoDB dokümantasyonunu inceleyebilirsiniz.
Sıkça Sorulan Sorular ve Sorun Giderme
Kurulum ve yapılandırma sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
* MongoDB Servisi Başlamıyor:
* Log Dosyalarını Kontrol Edin: sudo journalctl -u mongod veya /var/log/mongodb/mongod.log dosyasını kontrol edin. Hata mesajları genellikle sorunun kökenini gösterir.
* Yapılandırma Dosyası Hatası: /etc/mongod.conf dosyasında YAML sözdizimi hatası olup olmadığını kontrol edin. YAML, girintileme konusunda çok hassastır.
* Port Çakışması: MongoDB’nin varsayılan portu (27017) başka bir uygulama tarafından kullanılıyor olabilir. sudo netstat -tulnp | grep 27017 komutuyla kontrol edebilirsiniz.
* İzinler: Veri dizini (/var/lib/mongo) veya log dizini (/var/log/mongodb) için doğru okuma/yazma izinlerine sahip olduğundan emin olun. chown -R mongod:mongod /var/lib/mongo /var/log/mongodb komutuyla düzeltilebilir.
* Disk Alanı: Disk alanınızın dolmadığından emin olun.
* Uzak Bağlantı Kurulamıyor:
* bindIp Ayarı: /etc/mongod.conf dosyasındaki net.bindIp ayarının doğru olduğundan ve uzak makinenizin IP adresini veya 0.0.0.0 içerdiğinden emin olun.
* Güvenlik Duvarı: Sunucunuzun güvenlik duvarında 27017 portunun açık olduğundan emin olun (UFW veya FirewallD).
* Ağ Erişimi: İstemci makinesinden sunucuya ping atarak veya telnet ile portun erişilebilirliğini kontrol edin.
* Kimlik Doğrulama: Kimlik doğrulamasını etkinleştirdiyseniz, uzak bağlantı kurarken doğru kullanıcı adı, parola ve authenticationDatabase kullandığınızdan emin olun.
* mongosh Komutu Bulunamadı:
* Kurulumun başarıyla tamamlandığından ve mongodb-org-shell paketinin yüklü olduğundan emin olun.
* mongosh yürütülebilir dosyasının sisteminizin PATH değişkeninde yer alan bir dizinde olduğundan emin olun (genellikle /usr/bin/).
* Disk Alanı Doluyor:
* MongoDB veritabanınız zamanla büyüyebilir. Periyodik olarak gereksiz verileri temizleyin veya arşivleyin.
* Replika setleri veya sharding gibi ileri düzey yapılandırmaları düşünün.
* Performans Sorunları:
* Sorgularınız için uygun indeksler oluşturduğunuzdan emin olun.
* Agregasyon işlemlerini optimize edin.
* Sistem kaynaklarını (RAM, CPU, I/O) izleyin ve darboğazları tespit edin.
Sonuç
Bu kapsamlı rehberde, Linux işletim sistemleri üzerine MongoDB’nin nasıl kurulacağını, temel güvenlik ayarlarının nasıl yapılacağını ve MongoDB Shell ile nasıl etkileşim kurulacağını adım adım ele aldık. MongoDB, modern uygulama geliştirme için güçlü ve esnek bir veritabanı çözümüdür ve doğru kurulum ve yapılandırma ile uygulamalarınıza önemli avantajlar sağlayabilir.
Kurulum sürecinde, kullandığınız Linux dağıtımına ve MongoDB sürümüne özgü talimatlara dikkat etmek önemlidir. Güvenlik, özellikle üretim ortamlarında asla ihmal edilmemesi gereken kritik bir konudur; bu nedenle bindIp, kimlik doğrulama ve güvenlik duvarı ayarlarını doğru bir şekilde yapılandırdığınızdan emin olun.
MongoDB’nin yetenekleri, bu rehberde ele aldığımız temel kurulum ve kullanımdan çok daha geniştir. Veritabanınızın ölçeklenebilirliğini ve yüksek erişilebilirliğini artırmak için replika setleri (replica sets) ve sharding gibi ileri düzey konuları araştırmanızı şiddetle tavsiye ederiz. Ayrıca, bulut tabanlı bir çözüm olan MongoDB Atlas’ı da değerlendirebilirsiniz.
Unutmayın ki MongoDB resmi dokümantasyonu, her zaman en güncel ve detaylı bilgi kaynağıdır. Bu rehber, MongoDB dünyasına adım atmanız için sağlam bir temel oluşturmayı amaçlamaktadır. Başarılı bir kurulum ve keyifli bir MongoDB deneyimi dileriz!