O'rnatish — Windows, Mac, Linux, Docker bilan

~15 daq · MongoDB · Kirish va O'rnatish

Muammodan boshlaylik

MongoDB o'rnatish — ko'pchilik uchun birinchi to'siq. Rasmiy sayt ko'p versiyalar, ko'p variantlar ko'rsatadi. Qaysi versiyani olish kerak? Community Edition yoki Enterprise? mongosh alohidami? Docker ishlatishim kerakmi?

Ushbu darsda har bir operatsion tizim uchun eng sodda yo'l ko'rsatiladi. Har bir qadam tekshiriladigan natija bilan yakunlanadi.


Qanday versiya tanlash kerak?

MongoDB ikki xil versiyada chiqadi:

Community Edition — bepul, open-source. Shaxsiy loyihalar, o'rganish, startuplar uchun. Biz shu versiyani o'rnatamiz.

Enterprise Edition — pullik, qo'shimcha xususiyatlar: kengaytirilgan monitoring, LDAP autentifikatsiya, shifrlash. Katta korporativ loyihalar uchun.

Versiya raqami haqida: MongoDB juft raqamli versiyalar (6.0, 7.0, 8.0) — production uchun barqaror. Toq raqamli (5.1, 6.1) — rivojlanish versiyasi, production da ishlatilmaydi.

Tavsiya: eng so'nggi barqaror versiya — hozirda MongoDB 8.0.


1. Windows ga o'rnatish

Qadam 1 — Installer yuklab olish

MongoDB rasmiy sahifasidan MSI installer yuklab oling: https://www.mongodb.com/try/download/community

  • Version: eng so'nggisi (8.0.x)
  • Platform: Windows
  • Package: msi

Qadam 2 — O'rnatish

MSI faylni ishga tushiring:

  1. "Next" bosing
  2. Setup Type: Complete tanlang
  3. "Install MongoDB as a Service" — belgilangan qolsin (Windows bu'ni service sifatida avtomatik ishga tushiradi)
  4. "Install MongoDB Compass" — ixtiyoriy, lekin tavsiya etiladi
  5. "Install" bosing

Qadam 3 — mongosh o'rnatish

MongoDB 6.0 dan beri mongosh — alohida paket. Yuklab oling: https://www.mongodb.com/try/download/shell

MSI ni o'rnating. O'rnatish tugagach PATH ga avtomatik qo'shiladi.

Qadam 4 — Tekshirish

# Command Prompt yoki PowerShell da:
mongosh --version
# Natija: 2.x.x

mongod --version
# Natija: db version v8.x.x

Qadam 5 — Service holati

# Service ishlaydimi?
net start MongoDB

# Yoki Services.msc orqali "MongoDB" ni toping

2. macOS ga o'rnatish

macOS da eng qulay yo'l — Homebrew.

Homebrew o'rnatilmaganlar uchun

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Qadam 1 — MongoDB tap qo'shish

brew tap mongodb/brew

Qadam 2 — O'rnatish

brew install mongodb-community

Bu buyruq mongod (server), mongosh (shell) va kerakli toollarni o'rnatadi.

Qadam 3 — Ishga tushirish

# MongoDB ni service sifatida ishga tushirish
brew services start mongodb-community

# Yoki faqat bir marta ishga tushirish (service emas)
mongod --config /usr/local/etc/mongod.conf

Qadam 4 — Tekshirish

mongosh
# Natija: mongosh ga ulanish, > prompt paydo bo'lishi kerak

# Versiyani ko'rish
mongosh --version

To'xtatish va qayta ishga tushirish

brew services stop mongodb-community
brew services restart mongodb-community

3. Linux ga o'rnatish (Ubuntu/Debian)

Qadam 1 — GPG kalit qo'shish

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

Qadam 2 — Repository qo'shish

Ubuntu 22.04 (Jammy) uchun:

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

Ubuntu 24.04 (Noble) uchun jammy o'rniga noble yozing.

Qadam 3 — O'rnatish

sudo apt-get update
sudo apt-get install -y mongodb-org

Qadam 4 — Service ishga tushirish

sudo systemctl start mongod
sudo systemctl enable mongod   # ← tizim ishga tushganda avtomatik

# Holat tekshirish
sudo systemctl status mongod

Natija shu ko'rinishda bo'lishi kerak:

● mongod.service - MongoDB Database Server
   Active: active (running) since ...

Qadam 5 — Tekshirish

mongosh
# > prompt paydo bo'lishi kerak

4. Docker bilan o'rnatish

Docker — eng tez va "mashinani ifloslantirmaydigan" yo'l. Loyihadan loyihaga o'tganda turli versiyalar bilan ishlash uchun ideal.

Oddiy ishga tushirish

docker run -d \
  --name mongodb \
  -p 27017:27017 \
  mongo:8.0

Bu buyruq nima qiladi:

  • docker run -d — fon rejimida ishga tushiradi
  • --name mongodb — konteyner nomi
  • -p 27017:27017 — port: kompyuter:konteyner
  • mongo:8.0 — Docker Hub dan rasmiy MongoDB 8.0 image

Ulanish

# Konteyner ichiga kirib mongosh ishlatish
docker exec -it mongodb mongosh

Parol bilan ishga tushirish (tavsiya etiladi)

docker run -d \
  --name mongodb \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=maxfiysoz \
  mongo:8.0
# Parol bilan ulanish
docker exec -it mongodb mongosh \
  --username admin \
  --password maxfiysoz \
  --authenticationDatabase admin

docker-compose bilan (loyiha uchun)

Loyihangizda docker-compose.yml fayli:

version: "3.8"
services:
  mongodb:
    image: mongo:8.0
    container_name: mongodb
    restart: always
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: maxfiysoz
    volumes:
      - mongo_data:/data/db  # ← ma'lumotlar saqlanadi

volumes:
  mongo_data:
# Ishga tushirish
docker-compose up -d

# To'xtatish
docker-compose down

volumes muhim: uni ko'rsatmasangiz, konteyner to'xtatilganda barcha ma'lumotlar o'chib ketadi.


O'rnatish tekshiruvi — umumiy

Qaysi usulda o'rnatilgan bo'lmasin, shu buyruqlar ishlashi kerak:

# 1. Versiyani ko'rish
mongosh --version
mongod --version

# 2. MongoDB ga ulanish
mongosh

# 3. mongosh ichida — holat tekshirish
db.runCommand({ ping: 1 })
# Natija: { ok: 1 }

# 4. Test ma'lumot qo'shish
use test
db.salom.insertOne({ xabar: "MongoDB ishlayapti!" })
db.salom.find()
# Natija: { _id: ObjectId("..."), xabar: 'MongoDB ishlayapti!' }

Agar { ok: 1 } kelsa — MongoDB to'g'ri o'rnatilgan va ishlayapti.


Tez-tez uchraydigan xatolar

"mongod: command not found" (Linux/Mac)

mongod PATH ga qo'shilmagan. MongoDB o'rnatilgan joyni topib, PATH ga qo'shing:

# Mac (Homebrew)
export PATH="/usr/local/opt/mongodb-community/bin:$PATH"
# Yoki ~/.zshrc ga qo'shing

# Linux
which mongod   # topilmasa:
sudo ln -s /usr/bin/mongod /usr/local/bin/mongod

"Connection refused" — mongosh ulanolmayapti

MongoDB service ishlamayapti. Ishga tushiring:

# Linux
sudo systemctl start mongod

# Mac
brew services start mongodb-community

# Docker
docker start mongodb

Sabab: Ko'pincha kompyuter qayta ishga tushirilganda service avtomatik yuklanmaydi, agar enable qilinmagan bo'lsa.

"Permission denied" — /data/db papkasi

MongoDB standart holda ma'lumotlarni /data/db papkasida saqlaydi. Bu papka yo'q yoki huquq yo'q:

sudo mkdir -p /data/db
sudo chown -R $USER /data/db

Windows da "MongoDB service failed to start"

Ko'pincha port 27017 band. Boshqa dastur shu portni ishlatayapti. Tekshiring:

netstat -ano | findstr :27017

Agar band bo'lsa, o'sha dasturni to'xtating yoki MongoDB konfiguratsiyasida portni o'zgartiring (mongod.cfg).

Docker da "port is already allocated"

27017 porti band — ehtimol boshqa MongoDB instance ishlayapti:

docker ps -a           # barcha konteynerlar
docker stop mongodb    # to'xtatish
docker rm mongodb      # o'chirish
docker run ...         # qayta ishga tushirish

Qaysi usulni tanlash kerak?

Holat Tavsiya
O'rganish, shaxsiy loyiha Homebrew (Mac) yoki MSI (Windows)
Linux server apt/yum orqali, systemd service
Bir nechta loyiha, turli versiyalar Docker
Jamoa bilan ishlash Docker Compose — hammada bir xil muhit
Production MongoDB Atlas yoki dedicated server

Xulosa

  • Windows: MSI installer + mongosh alohida
  • macOS: brew install mongodb-community — eng oson
  • Linux: apt repository + systemd service
  • Docker: docker run mongo:8.0 — tez va izolyatsiyalangan
  • O'rnatish to'g'ri bo'lsa: mongosh ochiladi, { ok: 1 } qaytadi

Qaysi usulda o'rnatilgan bo'lmasin, keyingi darsdan boshlab hammamiz bir xil buyruqlardan foydalanamiz — mongosh ichida.


Keyingi dars: 3-dars — MongoDB Compass va mongosh: asosiy ishlatish