MongoDB’yi Ubuntu 20.04’te Varsayılan APT Depolarından Yükleme
MongoDB, modern uygulamaların veri depolama ihtiyaçlarını karşılamak üzere 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 şema esnekliği ve yüksek ölçeklenebilirlik sunar. Büyük ve karmaşık veri kümelerini yönetmek, hızlı veri erişimi sağlamak ve sürekli değişen uygulama gereksinimlerine uyum sağlamak isteyen işletmeler ve geliştiriciler için popüler bir seçimdir. Bu makalede, MongoDB’yi Ubuntu 20.04 işletim sisteminde varsayılan APT (Advanced Package Tool) depolarını kullanarak nasıl kuracağınızı, yapılandıracağınızı ve temel düzeyde nasıl yöneteceğinizi adım adım ele alacağız.
Neden MongoDB ve Neden Ubuntu 20.04?
MongoDB, özellikle büyük veri işleme, gerçek zamanlı analitik, içerik yönetim sistemleri ve mobil uygulamalar gibi alanlarda öne çıkar. Şemasız yapısı sayesinde verilerinizi esnek bir şekilde modelleyebilir, böylece uygulama geliştirme süreçlerini hızlandırabilirsiniz. Yatay ölçeklenebilirlik yetenekleri sayesinde, uygulamanızın büyümesiyle birlikte veritabanı performansınızı kolayca artırabilirsiniz.
Ubuntu 20.04 LTS (Long Term Support), sunucu ortamlarında yaygın olarak kullanılan, kararlı ve güvenilir bir Linux dağıtımıdır. Uzun süreli destek sunması, güvenlik güncellemeleri ve geniş paket yelpazesi nedeniyle birçok geliştirici ve sistem yöneticisi tarafından tercih edilir. Bu kombinasyon, güçlü ve esnek bir veritabanı çözümünü kararlı bir işletim sistemi üzerinde çalıştırmak için ideal bir temel oluşturur.
Bu rehber, MongoDB’nin Ubuntu’nun varsayılan APT depolarında bulunan sürümünü kurmaya odaklanacaktır. Varsayılan depolar, genellikle MongoDB’nin en son sürümünü içermese de, kurulumu basitleştirir ve temel geliştirme veya test ortamları için yeterli olabilir. Üretim ortamları veya en yeni özelliklere ihtiyaç duyan projeler için MongoDB’nin resmi depolarından kurulum genellikle daha iyi bir seçenektir, ancak bu makale varsayılan depoların kullanımına odaklanacaktır.
Ön Koşullar
Bu rehbere başlamadan önce aşağıdaki ön koşulların yerine getirildiğinden emin olun:
* Ubuntu 20.04 Sunucusu: Temiz bir Ubuntu 20.04 kurulumuna sahip bir sunucu veya sanal makine.
* SSH Erişimi: Sunucunuza SSH ile erişim.
* Sudo Yetkileri: Komutları çalıştırmak için sudo yetkilerine sahip bir kullanıcı hesabı.
* Temel Linux Bilgisi: Temel komut satırı bilgisi ve Linux dosya sistemi hakkında genel bir anlayış.
APT Depoları ve MongoDB Sürümleri
Ubuntu’nun varsayılan APT depoları, genellikle yazılımların kararlı ve iyi test edilmiş sürümlerini barındırır. Bu, sistem kararlılığı açısından avantajlı olsa da, yazılımların en son sürümlerini içermeyebileceği anlamına gelir. Ubuntu 20.04’ün varsayılan depoları, bu makalenin yazıldığı tarihte genellikle MongoDB 3.6 veya 4.0 gibi daha eski sürümlerini sunmaktadır. MongoDB’nin resmi depoları ise 5.0, 6.0, 7.0 gibi en güncel sürümleri ve bunların sunduğu yeni özellikleri, performans iyileştirmelerini ve güvenlik yamalarını içerir.
Bu rehberde varsayılan depoları kullanmamızın nedeni, kurulum sürecinin daha basit olması ve ek depo ekleme adımlarına gerek kalmamasıdır. Eğer uygulamanız daha eski bir MongoDB sürümüyle uyumluysa veya sadece temel bir deneme/geliştirme ortamı kuruyorsanız, bu yöntem oldukça pratiktir. Ancak, üretim ortamları veya en yeni MongoDB özelliklerine ihtiyaç duyan projeler için resmi MongoDB depolarından kurulumu ciddi şekilde düşünmelisiniz.
Adım 1: Paket Dizini Güncelleme
Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin paket dizinini güncellemek iyi bir uygulamadır. Bu, APT’nin en son paket listelerine sahip olmasını ve mevcut paketlerin güncel sürümlerini indirmesini sağlar.
SSH üzerinden sunucunuza bağlanın ve aşağıdaki komutu çalıştırın:
sudo apt update
Bu komut, yerel paket dizininizi uzak depolardaki bilgilerle senkronize eder. Ardından, sisteminizdeki yüklü paketleri en son sürümlerine yükseltmek isteyebilirsiniz, ancak bu MongoDB kurulumu için kesinlikle gerekli değildir:
sudo apt upgrade
Bu adım, sisteminizdeki mevcut paketleri yükseltecek ve olası bağımlılık sorunlarını önleyebilir.
Adım 2: MongoDB Paketini Yükleme
Paket dizini güncellendikten sonra, MongoDB paketini varsayılan APT depolarından yükleyebilirsiniz. Ubuntu 20.04’te MongoDB sunucusunu içeren paket genellikle mongodb veya mongodb-server olarak adlandırılır. mongodb paketi genellikle gerekli tüm bağımlılıkları çeker.
Aşağıdaki komutu kullanarak MongoDB sunucusunu ve ilgili araçları yükleyin:
sudo apt install mongodb
Kurulum sırasında, sistem sizden onay isteyebilir. Y tuşuna basıp Enter’a basarak devam edin. APT, MongoDB paketini ve bağımlılıklarını indirecek ve sisteminize kuracaktır. Kurulum tamamlandığında, MongoDB hizmeti otomatik olarak başlayacak ve sistem başlangıcında etkinleştirilecektir.
Adım 3: MongoDB Kurulumunu Doğrulama
Kurulum tamamlandıktan sonra, MongoDB hizmetinin düzgün çalıştığını doğrulamak önemlidir.
Hizmet Durumunu Kontrol Etme
MongoDB hizmetinin durumunu kontrol etmek için systemctl komutunu kullanın:
sudo systemctl status mongodb
Çıktıda active (running) ifadesini görmelisiniz. Bu, MongoDB hizmetinin başarıyla başladığı ve çalıştığı anlamına gelir. Ayrıca, hizmetin otomatik olarak başlatılacak şekilde etkinleştirildiğini de göreceksiniz.
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since ...
Docs: man:mongod(1)
Main PID: ... (mongod)
Tasks: ... (limit: ...)
Memory: ...
CPU: ...
CGroup: /system.slice/mongodb.service
└─... /usr/bin/mongod --config /etc/mongodb.conf
Eğer active (running) yerine başka bir durum görüyorsanız, hizmetin başlatılmasında bir sorun olabilir. Bu durumda, sudo systemctl start mongodb komutuyla hizmeti manuel olarak başlatmayı deneyebilir ve journalctl -xeu mongodb komutuyla günlükleri kontrol ederek hatanın nedenini araştırabilirsiniz.
MongoDB Shell’e Bağlanma
MongoDB’nin düzgün çalıştığını doğrulamanın bir başka yolu da MongoDB kabuğuna (shell) bağlanmaktır. Bu, veritabanıyla etkileşim kurmanızı sağlayan bir komut satırı aracıdır.
mongo
Bu komutu çalıştırdığınızda, MongoDB kabuğuna bağlanacak ve bir komut istemi göreceksiniz. Kabuktan çıkmak için exit yazıp Enter tuşuna basabilirsiniz.
Kabukta iken, bazı temel komutları deneyebilirsiniz:
* show dbs: Mevcut veritabanlarını listeler.
* db.stats(): Aktif veritabanının istatistiklerini gösterir.
* use admin: admin veritabanına geçiş yapar.
* db.shutdownServer(): MongoDB sunucusunu kapatır (yalnızca admin veritabanında ve yetkili kullanıcılar tarafından kullanılabilir).
Bu adımları başarıyla tamamladıysanız, MongoDB Ubuntu 20.04 sunucunuza başarıyla kurulmuş ve çalışır durumdadır.
Adım 4: MongoDB Hizmetini Yönetme
MongoDB bir systemd hizmeti olarak çalıştığı için, hizmeti yönetmek için standart systemctl komutlarını kullanabilirsiniz.
* MongoDB Hizmetini Başlatma:
sudo systemctl start mongodb
* MongoDB Hizmetini Durdurma:
sudo systemctl stop mongodb
* MongoDB Hizmetini Yeniden Başlatma:
sudo systemctl restart mongodb
* Sistem Başlangıcında Otomatik Başlamayı Etkinleştirme (Varsayılan olarak etkin olmalıdır):
sudo systemctl enable mongodb
* Sistem Başlangıcında Otomatik Başlamayı Devre Dışı Bırakma:
sudo systemctl disable mongodb
Bu komutlar, MongoDB hizmetini gerektiğinde yönetmenize olanak tanır. Genellikle, yapılandırma dosyalarında bir değişiklik yaptıktan sonra hizmeti yeniden başlatmanız gerekir.
Adım 5: Temel MongoDB Yapılandırması
MongoDB’nin yapılandırma dosyası, hizmetin nasıl çalıştığını belirleyen çeşitli ayarlar içerir. Ubuntu’nun varsayılan APT depolarından yüklenen MongoDB için yapılandırma dosyası genellikle /etc/mongodb.conf veya /etc/mongod.conf konumunda bulunur.
Yapılandırma dosyasını düzenlemek için favori metin düzenleyicinizi kullanın (örneğin, nano veya vi):
sudo nano /etc/mongodb.conf
Bu dosyadaki bazı önemli ayarlar şunlardır:
* bindIp: Bu ayar, MongoDB’nin hangi IP adreslerini dinleyeceğini belirler. Varsayılan olarak 127.0.0.1 (localhost) olarak ayarlanmıştır. Bu, MongoDB’ye yalnızca aynı sunucu üzerinden erişilebileceği anlamına gelir. Eğer MongoDB’ye başka bir sunucudan veya uzaktan erişmek istiyorsanız, bu değeri sunucunuzun özel IP adresine veya tüm ağ arayüzlerinden dinlemesi için 0.0.0.0 olarak değiştirmelisiniz.
bindIp: 0.0.0.0 # Tüm IP adreslerinden erişime izin verir (DİKKAT: Güvenlik riski taşır)
ÖNEMLİ GÜVENLİK UYARISI: bindIp değerini 0.0.0.0 olarak ayarlamak, MongoDB sunucunuzu internete veya yerel ağdaki herkese açık hale getirir. Bu, yetkilendirme ve güvenlik duvarı kuralları olmadan ciddi bir güvenlik riski oluşturur. Üretim ortamlarında veya hassas verilerle çalışırken, yalnızca belirli güvenilir IP adreslerinden erişime izin vermek için bu değeri sunucunuzun özel IP adresine veya bir dizi IP adresine ayarlamalısınız. Güvenlik duvarı kurallarını mutlaka yapılandırmalısınız.
* port: MongoDB’nin dinleyeceği TCP portunu belirler. Varsayılan değer 27017‘dir. Çoğu durumda bu değeri değiştirmeye gerek yoktur.
port: 27017
* dbPath: MongoDB veri dosyalarının depolandığı dizini belirtir. Varsayılan olarak /var/lib/mongodb‘dir.
dbPath: /var/lib/mongodb
* logPath: MongoDB günlük dosyalarının depolandığı yolu belirtir. Varsayılan olarak /var/log/mongodb/mongodb.log‘dur.
logPath: /var/log/mongodb/mongodb.log
* authorization: Bu ayar, MongoDB’de kullanıcı kimlik doğrulamasını etkinleştirir. Varsayılan olarak yorum satırı halindedir veya disabled olarak ayarlanmıştır. Üretim ortamlarında kesinlikle etkinleştirilmelidir.
security:
authorization: enabled
Değişiklikleri yaptıktan sonra dosyayı kaydedin ve kapatın (nano için Ctrl+X, Y ve Enter). Ardından, değişikliklerin etkili olması için MongoDB hizmetini yeniden başlatın:
sudo systemctl restart mongodb
Adım 6: MongoDB’yi Güvenli Hale Getirme (Çok Önemli!)
MongoDB’yi güvenli hale getirmek, özellikle üretim ortamlarında kritik öneme sahiptir. Varsayılan olarak, MongoDB kimlik doğrulaması kapalı gelir ve bu da herhangi bir kullanıcının veritabanına tam erişim sağlamasına izin verir. Ayrıca, bindIp ayarını 0.0.0.0 olarak değiştirdiyseniz, sunucunuza bir güvenlik duvarı eklemek zorunludur.
Güvenlik Duvarı Yapılandırması (UFW)
Ubuntu’da UFW (Uncomplicated Firewall) adlı basit bir güvenlik duvarı aracı bulunur. UFW’yi etkinleştirerek ve kurallar belirleyerek sunucunuzu koruyabilirsiniz.
1. UFW’yi Etkinleştirme:
sudo ufw enable
Bu komut, güvenlik duvarını etkinleştirir. SSH bağlantınızın kesilmemesi için öncelikle SSH portuna izin vermelisiniz.
2. SSH Portuna İzin Verme:
sudo ufw allow ssh
# veya spesifik port numarası için: sudo ufw allow 22/tcp
3. MongoDB Portuna İzin Verme:
Eğer bindIp‘yi 0.0.0.0 olarak ayarladıysanız ve uzaktan erişime ihtiyacınız varsa, MongoDB’nin varsayılan portu olan 27017’ye izin vermelisiniz. Ancak, mümkünse yalnızca belirli IP adreslerinden erişime izin verin.
* Tüm IP’lerden erişime izin verme (Riskli!):
sudo ufw allow 27017/tcp
* Belirli bir IP adresinden erişime izin verme (Önerilen):
sudo ufw allow from to any port 27017
Örneğin: sudo ufw allow from 192.168.1.100 to any port 27017
4. UFW Durumunu Kontrol Etme:
sudo ufw status
Bu komut, aktif UFW kurallarını listeler.
Kimlik Doğrulamasını Etkinleştirme ve Kullanıcı Oluşturma
MongoDB’de kimlik doğrulamasını etkinleştirmek, yetkisiz erişimi engellemenin en önemli adımlarından biridir.
1. mongodb.conf dosyasını düzenleyin:
Daha önce bahsettiğimiz gibi, /etc/mongodb.conf dosyasını açın ve security bölümünün altına authorization: enabled satırını ekleyin:
security:
authorization: enabled
Dosyayı kaydedin ve kapatın.
2. MongoDB hizmetini yeniden başlatın:
sudo systemctl restart mongodb
Bu adımdan sonra, MongoDB’ye bağlanmak için artık kimlik doğrulama gerekecektir. Ancak henüz bir kullanıcı oluşturmadığımız için, şu an için kimlik doğrulama olmadan bağlanabiliriz (çünkü henüz hiçbir kullanıcı yok).
3. Yönetici Kullanıcısı Oluşturma:
Kimlik doğrulama etkinleştirildiğinde, veritabanına erişmek için bir kullanıcı oluşturmanız gerekir. İlk olarak, yönetici ayrıcalıklarına sahip bir kullanıcı oluşturmalısınız.
MongoDB kabuğuna bağlanın:
mongo
admin veritabanına geçin ve yönetici kullanıcısını oluşturun:
use admin
db.createUser(
{
user: "adminUser",
pwd: passwordPrompt(), // Parolayı güvenli bir şekilde girmenizi ister
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase", "dbAdminAnyDatabase" ]
}
)
passwordPrompt() komutu, parolayı güvenli bir şekilde girmeniz için bir istem açacaktır. adminUser yerine istediğiniz kullanıcı adını kullanabilirsiniz. Rolleri, bu kullanıcının hangi veritabanları üzerinde hangi işlemleri yapabileceğini belirler. Yukarıdaki roller, yönetici kullanıcısı için geniş yetkiler sağlar.
Kullanıcı oluşturulduktan sonra kabuktan çıkın:
exit
4. Kimlik Doğrulama ile Bağlanmayı Test Etme:
Artık MongoDB’ye bağlanmak için oluşturduğunuz kullanıcı adını ve parolayı kullanmanız gerekir.
mongo -u adminUser -p --authenticationDatabase admin
Bu komut, sizden adminUser kullanıcısının parolasını isteyecektir. Doğru parolayı girdikten sonra MongoDB kabuğuna bağlanabileceksiniz. Eğer kimlik doğrulama olmadan bağlanmaya çalışırsanız, erişim reddedilecektir.
mongo # Bu artık çalışmamalıdır, hata vermeli veya erişim kısıtlamalı olmalıdır.
Rol Tabanlı Erişim Kontrolü (RBAC)
MongoDB, kullanıcılara belirli roller atayarak rol tabanlı erişim kontrolü (RBAC) sağlar. Bu, kullanıcılara yalnızca ihtiyaç duydukları yetkileri vermenizi sağlar. Örneğin, bir uygulama kullanıcısı için yalnızca belirli bir veritabanında okuma/yazma yetkisi olan bir kullanıcı oluşturabilirsiniz.
use myappdb // Uygulama veritabanınıza geçin
db.createUser(
{
user: "appUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "myappdb" } ]
}
)
Bu komut, myappdb veritabanında readWrite yetkisine sahip appUser adında bir kullanıcı oluşturur. Bu kullanıcı, diğer veritabanlarına erişemez veya sistem düzeyinde yönetim görevleri yapamaz.
Adım 7: MongoDB’ye Bağlanma
MongoDB’ye bağlanmak için çeşitli yöntemler vardır:
* MongoDB Shell: Daha önce kullandığımız mongo komutuyla yerel olarak veya uzaktan bağlanabilirsiniz:
# Yerel olarak, kimlik doğrulama ile
mongo -u adminUser -p --authenticationDatabase admin
# Uzaktan, kimlik doğrulama ile
mongo --host --port 27017 -u adminUser -p --authenticationDatabase admin
* Programlama Dili Sürücüleri: Çoğu programlama dili (Python, Node.js, Java, PHP vb.) MongoDB ile etkileşim kurmak için resmi veya topluluk tarafından desteklenen sürücülere sahiptir. Bu sürücüler, uygulamalarınızdan MongoDB’ye bağlanmanızı ve veritabanı işlemleri yapmanızı sağlar.
* GUI Araçları: MongoDB Compass gibi grafiksel kullanıcı arayüzü (GUI) araçları, veritabanlarını görsel olarak yönetmenize ve sorgulamanıza olanak tanır. Ancak, MongoDB Compass genellikle daha yeni MongoDB sürümleriyle daha iyi çalışır.
Adım 8: Temel MongoDB İşlemleri (MongoDB Shell ile)
MongoDB shell’i kullanarak temel veritabanı işlemlerini nasıl yapabileceğinize dair bazı örnekler:
Veritabanı Oluşturma ve Seçme
Bir veritabanı oluşturmak için use komutunu kullanmanız yeterlidir. Eğer veritabanı yoksa oluşturulur, varsa seçilir.
use myNewDatabase
Koleksiyon Oluşturma
MongoDB’de veriler koleksiyonlarda saklanır. Bir koleksiyonu açıkça oluşturabilirsiniz, ancak genellikle ilk belgeyi eklediğinizde otomatik olarak oluşturulur.
db.createCollection("myCollection")
Belge Ekleme (Insert)
Koleksiyonlara belge eklemek için insertOne veya insertMany yöntemlerini kullanın:
// Tek belge ekleme
db.myCollection.insertOne({ name: "Alice", age: 30, city: "New York" })
// Birden fazla belge ekleme
db.myCollection.insertMany([
{ name: "Bob", age: 25, city: "London" },
{ name: "Charlie", age: 35, city: "Paris" }
])
Belge Sorgulama (Find)
Koleksiyondaki belgeleri bulmak için find yöntemini kullanın:
// Tüm belgeleri bulma
db.myCollection.find()
// Belirli bir kritere göre belge bulma
db.myCollection.find({ name: "Alice" })
// Belirli alanları seçerek bulma
db.myCollection.find({ age: { $gt: 28 } }, { name: 1, city: 1, _id: 0 }) // Yaşı 28'den büyük olanların adını ve şehrini getir
Belge Güncelleme (Update)
Mevcut belgeleri güncellemek için updateOne veya updateMany yöntemlerini kullanın:
// Tek bir belgeyi güncelleme
db.myCollection.updateOne(
{ name: "Alice" },
{ $set: { age: 31, status: "active" } }
)
// Birden fazla belgeyi güncelleme
db.myCollection.updateMany(
{ city: "London" },
{ $set: { status: "inactive" } }
)
Belge Silme (Delete)
Belgeleri silmek için deleteOne veya deleteMany yöntemlerini kullanın:
// Tek bir belgeyi silme
db.myCollection.deleteOne({ name: "Bob" })
// Belirli bir kritere uyan tüm belgeleri silme
db.myCollection.deleteMany({ status: "inactive" })
// Koleksiyondaki tüm belgeleri silme
db.myCollection.deleteMany({})
Koleksiyon Silme
Bir koleksiyonu tamamen silmek için drop yöntemini kullanın:
db.myCollection.drop()
Veritabanı Silme
Seçili veritabanını tamamen silmek için dropDatabase yöntemini kullanın:
use myNewDatabase // Silmek istediğiniz veritabanını seçin
db.dropDatabase()
Adım 9: Varsayılan APT Depolarından Kurulumun Sınırlamaları
Bu rehberde varsayılan APT depolarından MongoDB kurulumunu ele aldık. Ancak bu yaklaşımın bazı önemli sınırlamaları vardır:
* Eski Sürümler: En önemli sınırlama, varsayılan depoların genellikle MongoDB’nin daha eski sürümlerini içermesidir (Ubuntu 20.04 için genellikle 3.6 veya 4.0). Bu sürümler, güncel MongoDB sürümlerinde bulunan birçok yeni özellikten, performans iyileştirmelerinden ve güvenlik yamalarından yoksundur.
* Destek Süresi: Eski MongoDB sürümleri, resmi olarak MongoDB Inc. tarafından daha kısa bir destek süresine sahip olabilir veya destekleri sona ermiş olabilir. Bu, güvenlik açıkları veya kritik hatalar için yama almayabileceğiniz anlamına gelir.
* Eksik Özellikler: Sharding, transactions (işlemler), gelişmiş sorgu operatörleri, atlas search, time series collections gibi MongoDB’nin yeni sürümlerindeki birçok gelişmiş özellik eski sürümlerde bulunmaz veya farklı şekilde uygulanır.
* Yükseltme Zorluğu: Mevcut bir eski MongoDB kurulumunu daha yeni bir sürüme yükseltmek, özellikle büyük veri kümeleriyle çalışırken karmaşık ve zaman alıcı olabilir. Resmi depolardan kurulum, daha sorunsuz yükseltme yolları sunar.
* Uyumluluk Sorunları: Geliştirdiğiniz uygulama, MongoDB’nin en yeni sürümlerinde bulunan belirli bir özelliği veya sürücü davranışını gerektiriyorsa, eski bir sürümle uyumluluk sorunları yaşayabilirsiniz.
Bu sınırlamalar göz önüne alındığında, varsayılan depolardan kurulum genellikle yalnızca hızlı testler, temel geliştirme ortamları veya belirli bir eski MongoDB sürümüne bağımlı olan uygulamalar için uygundur.
Adım 10: Resmi MongoDB Depolarını Ne Zaman Kullanmalısınız?
Yukarıda belirtilen sınırlamalar nedeniyle, çoğu üretim ortamı ve yeni uygulama geliştirme projesi için MongoDB’nin resmi depolarından kurulum şiddetle tavsiye edilir. Resmi depolar:
* En Yeni Sürümler: Her zaman en güncel MongoDB sürümlerini sunar.
* Uzun Süreli Destek: Güncel sürümler için sürekli güvenlik yamaları ve hata düzeltmeleri sağlar.
* Gelişmiş Özellikler: MongoDB’nin tüm yeni özelliklerine ve performans iyileştirmelerine erişim sağlar.
* Daha İyi Yükseltme Yolları: Belirli bir sürümden diğerine yükseltme süreçleri daha iyi belgelenmiştir ve daha güvenilirdir.
Resmi depolardan kurulum süreci, ek bir GPG anahtarı eklemeyi ve APT kaynak listesine MongoDB deposunu eklemeyi içerir. Bu adımlar, Ubuntu’nun varsayılan depolarından kurulumdan biraz daha karmaşık olsa da, uzun vadede daha fazla esneklik, güvenlik ve performans sağlar.
Adım 11: Yaygın Sorun Giderme
Kurulum veya kullanım sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
* MongoDB Hizmeti Başlamıyor:
* sudo systemctl status mongodb komutuyla hizmetin durumunu kontrol edin.
* journalctl -xeu mongodb komutuyla MongoDB günlüklerini kontrol edin. Genellikle hata mesajları, sorunun kökeni hakkında ipuçları verir (örneğin, yapılandırma dosyasında sözdizimi hatası, disk alanı sorunu, izin sorunları).
* sudo mongod --config /etc/mongodb.conf komutunu doğrudan çalıştırarak hatanın konsolda görünmesini sağlayabilirsiniz.
* Bağlantı Sorunları:
* bindIp ayarını kontrol edin (/etc/mongodb.conf). Uzaktan erişime izin vermek için doğru şekilde yapılandırıldığından emin olun.
* Güvenlik duvarı (UFW) kurallarını kontrol edin (sudo ufw status). MongoDB portuna (varsayılan 27017) izin verildiğinden emin olun.
* Kimlik doğrulama etkinse, doğru kullanıcı adı, parola ve authenticationDatabase ile bağlanmaya çalıştığınızdan emin olun (mongo -u ).
* Disk Alanı Tükenmesi:
* df -h komutuyla disk kullanımını kontrol edin. MongoDB veri dizini (/var/lib/mongodb) çok fazla yer kaplıyorsa, disk alanı tükenmesi hizmetin durmasına neden olabilir. Veritabanını optimize etmeniz veya daha fazla depolama alanı eklemeniz gerekebilir.
* İzin Sorunları:
* MongoDB veri dizini (/var/lib/mongodb) ve günlük dizini (/var/log/mongodb) için doğru dosya izinlerine sahip olduğundan emin olun. Genellikle mongodb kullanıcısı ve grubu tarafından sahip olunmalıdır. Gerekirse sudo chown -R mongodb:mongodb /var/lib/mongodb ve sudo chown -R mongodb:mongodb /var/log/mongodb komutlarını kullanabilirsiniz.
Sonuç
Bu makalede, MongoDB’yi Ubuntu 20.04’te varsayılan APT depolarından adım adım nasıl kuracağınızı, yapılandıracağınızı ve yöneteceğinizi detaylı bir şekilde öğrendiniz. Kurulum sürecinin basitliği, özellikle temel geliştirme veya test ortamları için bu yöntemi cazip kılmaktadır. Ayrıca, kurulumu doğrulama, hizmeti yönetme, temel yapılandırma ayarlarını düzenleme ve en önemlisi MongoDB sunucunuzu güvenlik duvarı ve kimlik doğrulama ile nasıl güvenli hale getireceğinizi de ele aldık.
Ancak, varsayılan APT depolarından kurulumun, MongoDB’nin daha eski bir sürümünü sağladığı ve dolayısıyla en yeni özelliklerden, performans iyileştirmelerinden ve güvenlik yamalarından yoksun olduğu unutulmamalıdır. Üretim ortamları veya en güncel MongoDB yeteneklerine ihtiyaç duyan projeler için, MongoDB’nin resmi depolarından kurulumu tercih etmek genellikle daha uygun bir yaklaşımdır.
Seçtiğiniz kurulum yöntemi ne olursa olsun, MongoDB’nin esnekliği ve ölçeklenebilirliği, modern uygulama geliştirme için güçlü bir temel sunar. Artık MongoDB sunucunuz çalışır durumda olduğuna göre, uygulamanızı bu güçlü NoSQL veritabanıyla entegre etmeye ve belge tabanlı veri modellemenin avantajlarından yararlanmaya başlayabilirsiniz. Her zaman olduğu gibi, MongoDB’nin resmi belgeleri, daha derinlemesine bilgi ve gelişmiş yapılandırma seçenekleri için en iyi kaynaktır.