sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Veritabanı MongoDB Kurulumu: Ubuntu 22.04 ve Temel Kullanım
🗄️ Veritabanı

MongoDB Kurulumu: Ubuntu 22.04 ve Temel Kullanım

Ubuntu 22.04'te MongoDB resmi repo ile kurulum, kimlik doğrulamayı aktifleştirme, kullanıcı oluşturma ve temel CRUD işlemleri.

📅 8 Mayıs 2025 👁 5 görüntülenme ⏱ 4 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

MongoDB Nedir?

MongoDB, JSON benzeri BSON (Binary JSON) formatında belgeleri saklayan, şemasız ve yatay olarak ölçeklenebilir bir NoSQL veritabanıdır. İlişkisel veritabanlarından farklı olarak sabit tablo yapısı gerektirmez; her belge farklı alanlara sahip olabilir. Bu esneklik, hızlı prototipleme, yarı yapısal veri saklama ve mikro servis mimarileri için idealdir.

MongoDB'nin öne çıkan özellikleri: doküman tabanlı veri modeli, güçlü sorgulama dili, aggregation pipeline, geospatial indexing, full-text arama ve replica set ile high availability. Node.js, Python, PHP, Java gibi popüler programlama dilleri için resmi driver'ları mevcuttur.

Ubuntu 22.04'te MongoDB Kurulumu

MongoDB 7.0 Resmi Deposu

sudo apt install gnupg curl -y

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

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

sudo apt update
sudo apt install -y mongodb-org

MongoDB Başlatma

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

MongoDB'ye Bağlanma

mongosh

Kimlik Doğrulamayı Aktifleştirme

Üretim ortamında MongoDB kimlik doğrulaması mutlaka etkinleştirilmelidir:

mongosh
use admin
db.createUser({
  user: "admin",
  pwd: "GucluMongoDB2024!",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

Yapılandırma Dosyasında Auth Aktifleştirme

sudo nano /etc/mongod.conf
security:
  authorization: enabled

net:
  port: 27017
  bindIp: 127.0.0.1  # Uzak erişim için: 0.0.0.0
sudo systemctl restart mongod

Kimlik Doğrulamalı Bağlantı

mongosh --username admin --password --authenticationDatabase admin

Uygulama Veritabanı ve Kullanıcı Oluşturma

use myapp_db

db.createUser({
  user: "myapp_user",
  pwd: "AppMongo2024!",
  roles: [{ role: "readWrite", db: "myapp_db" }]
})

Temel CRUD İşlemleri

Belge Ekleme (Create)

use myapp_db

// Tek belge
db.users.insertOne({
  name: "Ahmet Yılmaz",
  email: "ahmet@example.com",
  age: 30,
  createdAt: new Date()
})

// Çoklu belge
db.users.insertMany([
  { name: "Mehmet Demir", email: "mehmet@example.com", age: 25 },
  { name: "Ayşe Kaya", email: "ayse@example.com", age: 28 }
])

Belge Okuma (Read)

// Tüm belgeler
db.users.find()

// Filtreyle arama
db.users.find({ age: { $gt: 25 } })

// İlk belge
db.users.findOne({ email: "ahmet@example.com" })

// Projeksiyon (sadece isim ve email)
db.users.find({}, { name: 1, email: 1, _id: 0 })

// Sıralama ve limit
db.users.find().sort({ age: -1 }).limit(10)

Belge Güncelleme (Update)

// Tek güncelleme
db.users.updateOne(
  { email: "ahmet@example.com" },
  { $set: { age: 31, updatedAt: new Date() } }
)

// Tüm eşleşenleri güncelle
db.users.updateMany(
  { age: { $lt: 25 } },
  { $set: { status: "young" } }
)

Belge Silme (Delete)

db.users.deleteOne({ email: "test@example.com" })
db.users.deleteMany({ status: "inactive" })

Index Oluşturma

// Email alanı üzerinde unique index
db.users.createIndex({ email: 1 }, { unique: true })

// Bileşik index
db.users.createIndex({ name: 1, age: -1 })

// Mevcut indexleri listele
db.users.getIndexes()

Aggregation Pipeline

db.users.aggregate([
  { $match: { age: { $gte: 25 } } },
  { $group: { _id: null, avgAge: { $avg: "$age" }, count: { $sum: 1 } } },
  { $project: { _id: 0, avgAge: 1, count: 1 } }
])

MongoDB Compass Kurulumu

MongoDB Compass, MongoDB için grafik arayüzlü yönetim aracıdır. Yerel makinenizde çalışır:

wget https://downloads.mongodb.com/compass/mongodb-compass_1.42.0_amd64.deb
sudo dpkg -i mongodb-compass_1.42.0_amd64.deb

Yedekleme ve Geri Yükleme

# Yedekleme
mongodump --authenticationDatabase admin -u admin -p --out /backup/mongo_$(date +%Y%m%d)

# Geri yükleme
mongorestore --authenticationDatabase admin -u admin -p /backup/mongo_20240101/

Sık Karşılaşılan Sorunlar

mongod Başlamıyor

sudo journalctl -u mongod -n 50
sudo cat /var/log/mongodb/mongod.log | tail -30
# Data dizini izin sorunu:
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chmod 755 /var/lib/mongodb

Sonuç

MongoDB 7.0'ı Ubuntu 22.04'e başarıyla kurdunuz ve temel CRUD işlemlerini, index yönetimini ve güvenlik yapılandırmasını öğrendiniz. MongoDB'nin esnek veri modeli ve güçlü sorgulama yetenekleri, özellikle Node.js ile geliştirilen MERN/MEAN stack uygulamalar için mükemmel bir seçimdir.

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.