آموزش نصب MongoDB در ubuntu – Debian – Rocky Linux – Alma Linux و ویندوز



MongoDB به عنوان پیشگام در دنیای پایگاه‌های داده NoSQL، به یک ابزار حیاتی برای توسعه‌دهندگان برنامه‌های مدرن تبدیل شده است. این دیتابیس سند-گرای (Document-Oriented) قدرتمند، به دلیل انعطاف‌پذیری، مقیاس‌پذیری و عملکرد بالا، توسط شرکت‌های نوپا و غول‌های فناوری مانند Google, Adobe و Forbes به طور گسترده استفاده می‌شود. اگر به دنبال ذخیره‌سازی داده‌های بدون ساختار یا با ساختار متغیر هستید، مونگو دی بی یک انتخاب عالی است.

در این راهنمای جامع و کاملا به‌روز، ما شما را قدم به قدم با فرآیند نصب آخرین نسخه MongoDB Community Edition بر روی سیستم‌عامل‌های مختلف از جمله اوبونتو (۲۴.۰۴، ۲۲.۰۴)، دبیان، راکی/آلما لینوکس و ویندوز آشنا می‌کنیم و نکات کلیدی برای ایمن‌سازی اولیه آن را آموزش می‌دهیم.

 

 چرا MongoDB را انتخاب کنیم؟ (مزایا و ویژگی‌های کلیدی)

قبل از ورود به مباحث فنی نصب، بیایید ببینیم چه چیزی MongoDB را تا این حد محبوب کرده است:

  • مدل داده سند-گرا: داده‌ها در قالب اسنادی شبیه به JSON (که در مونگو BSON نامیده می‌شود) ذخیره می‌شوند. این مدل به طور طبیعی با ساختار اشیاء در زبان‌های برنامه‌نویسی مدرن هماهنگ است و نیاز به نگاشت‌های پیچیده (ORM) را کاهش می‌دهد.
  • شِمای انعطاف‌پذیر (Flexible Schema): برخلاف پایگاه‌های داده SQL که نیازمند تعریف دقیق جداول و ستون‌ها از قبل هستند، در MongoDB هر سند در یک مجموعه (Collection) می‌تواند ساختار متفاوتی داشته باشد. این ویژگی سرعت توسعه را به شدت افزایش می‌دهد.
  • مقیاس‌پذیری افقی آسان: با استفاده از تکنیک Sharding، مونگو دی بی می‌تواند حجم عظیمی از داده‌ها و درخواست‌ها را با توزیع بار بر روی چندین سرور مدیریت کند.
  • دسترس‌پذیری بالا (High Availability): از طریق مجموعه‌های تکثیر یا Replica Sets، چندین کپی از داده‌ها بر روی سرورهای مختلف نگهداری می‌شود. در صورت از کار افتادن سرور اصلی، یکی از نسخه‌های پشتیبان به طور خودکار جایگزین آن می‌شود و از قطعی سرویس جلوگیری می‌کند.
  • ایندکس‌گذاری و جستجوی قدرتمند: MongoDB از انواع مختلف ایندکس برای بهینه‌سازی سرعت کوئری‌ها پشتیبانی می‌کند و زبان جستجوی غنی آن امکان اجرای انواع پرس‌وجوهای پیچیده را فراهم می‌سازد.

 

 نصب MongoDB: راهنمای گام به گام برای هر سیستم‌عامل

از آنجایی که نسخه‌های موجود در مخازن پیش‌فرض توزیع‌های لینوکس معمولا قدیمی هستند، ما همیشه از مخزن رسمی MongoDB برای نصب آخرین و پایدارترین نسخه استفاده خواهیم کرد.

 

 نصب در اوبونتو (24.04 Noble & 22.04 Jammy)

فرآیند نصب برای جدیدترین نسخه‌های اوبونتو مشابه است و تنها نام مخزن تفاوت دارد. برای میزبانی دیتابیس خود روی سرور لینوکسی قدرتمند، می‌توانید از سرور مجازی آلمان استفاده کنید.

۱. نصب پیش‌نیازها و وارد کردن کلید GPG

ابتدا سیستم خود را آپدیت کرده و ابزارهای مورد نیاز را نصب کنید.

sudo apt update && sudo apt upgrade -y
sudo apt install wget curl gnupg software-properties-common apt-transport-https ca-certificates lsb-release -y

سپس کلید GPG رسمی MongoDB را برای تایید اعتبار بسته‌ها به سیستم اضافه کنید.

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

۲. افزودن مخزن رسمی MongoDB

اکنون فایل مخزن را بر اساس نسخه اوبونتوی خود ایجاد کنید.

# برای اوبونتو 24.04 (Noble)
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

# برای اوبونتو 22.04 (Jammy)
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

۳. نصب بسته MongoDB

لیست بسته‌های خود را مجددا آپدیت کرده و بسته `mongodb-org` را که شامل تمام اجزای لازم است، نصب کنید.

sudo apt update
sudo apt install mongodb-org -y

۴. راه‌اندازی و مدیریت سرویس

پس از نصب، سرویس `mongod` را استارت زده و آن را فعال (enable) کنید تا پس از هر بار بوت شدن سیستم، به طور خودکار اجرا شود.

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

 

 نصب در Rocky Linux / Alma Linux (نسخه 9)

در توزیع‌های خانواده RHEL مانند راکی و آلما لینوکس، باید یک فایل مخزن جدید برای مدیر بسته `dnf` ایجاد کنیم.

  1. ایجاد فایل مخزن: یک فایل جدید با ویرایشگر متن خود (مانند nano یا vim) در مسیر `/etc/yum.repos.d/` ایجاد کنید.
    sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo
  2. افزودن محتوای مخزن: محتوای زیر را در فایل کپی و ذخیره کنید.
    [mongodb-org-7.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
  3. نصب MongoDB: اکنون با استفاده از `dnf` بسته `mongodb-org` را نصب کنید.
    sudo dnf install -y mongodb-org
  4. مدیریت سرویس و فایروال: سرویس را راه‌اندازی و فعال کنید.
    sudo systemctl start mongod
    sudo systemctl enable mongod

    برای اجازه دسترسی به دیتابیس از خارج سرور، پورت پیش‌فرض MongoDB (27017) را در فایروال باز کنید.

    sudo firewall-cmd --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload

 

 نصب MongoDB در ویندوز

نصب MongoDB در ویندوز به لطف فایل نصبی MSI بسیار ساده است.

  1. دانلود نصاب: به صفحه دانلود رسمی MongoDB بروید. از منوی کشویی، آخرین نسخه و پکیج `MSI` را انتخاب و دانلود کنید.
  2. اجرای فایل نصب: فایل MSI دانلود شده را اجرا کنید. در مراحل نصب، گزینه “Complete” را انتخاب کنید.
  3. نصب MongoDB Compass (بسیار مهم): در یکی از مراحل، گزینه `Install MongoDB Compass` به صورت پیش‌فرض تیک خورده است. این تیک را برندارید. Compass یک رابط کاربری گرافیکی (GUI) قدرتمند برای مدیریت دیتابیس، اجرای کوئری‌ها و مشاهده داده‌ها به صورت بصری است که کار شما را بسیار آسان‌تر می‌کند.
  4. اتصال و تست: پس از نصب، `MongoDB Compass` را اجرا کنید تا به دیتابیس لوکال خود متصل شوید یا خط فرمان (CMD یا PowerShell) را باز کرده و با دستور `mongosh` وارد شل مونگو شوید.

برای پروژه‌های ویندوزی که نیاز به دسترسی پایدار و منابع اختصاصی دارند، سرور مجازی فنلاند می‌تواند گزینه مناسبی باشد.

 

 اقدام ضروری پس از نصب: ایمن‌سازی MongoDB

هشدار: به طور پیش‌فرض، MongoDB بدون نیاز به احراز هویت (Authentication) نصب می‌شود و هر کسی که به سرور دسترسی داشته باشد، می‌تواند به دیتابیس شما متصل شود. فعال‌سازی احراز هویت در محیط‌های کاری یک ضرورت مطلق است.

۱. ایجاد اولین کاربر مدیر

ابتدا با دستور `mongosh` وارد محیط تعاملی مونگو شوید. سپس به دیتابیس `admin` که برای مدیریت کاربران استفاده می‌شود، بروید.

use admin

حالا یک کاربر با دسترسی کامل مدیریتی ایجاد کنید. به جای `myAdminUser` و `yourStrongPassword` از مقادیر دلخواه و یک رمز عبور بسیار قوی استفاده کنید.

db.createUser({
  user: "myAdminUser",
  pwd: "yourStrongPassword",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ]
})

پس از مشاهده پیام موفقیت، با دستور `quit()` از شل خارج شوید.

۲. فعال‌سازی احراز هویت در فایل پیکربندی

فایل پیکربندی MongoDB را برای ویرایش باز کنید (در لینوکس: `sudo nano /etc/mongod.conf`).

بخش `security` را پیدا کنید (اگر وجود ندارد آن را ایجاد کنید) و آن را به شکل زیر ویرایش کنید:

security:
  authorization: "enabled"

فایل را ذخیره کرده و خارج شوید.

۳. راه‌اندازی مجدد سرویس

برای اعمال تغییرات، سرویس MongoDB را ری‌استارت کنید.

sudo systemctl restart mongod

از این پس، برای اتصال به دیتابیس باید نام کاربری و رمز عبور را مشخص کنید. برای مثال:

mongosh -u "myAdminUser" -p --authenticationDatabase "admin"

پس از وارد کردن این دستور، از شما خواسته می‌شود تا رمز عبور را وارد کنید.

 

سوالات متداول درباره نصب و استفاده از MongoDB

تفاوت اصلی MongoDB با دیتابیس‌های SQL چیست؟
تفاوت اصلی در مدل داده است. دیتابیس‌های SQL (مانند MySQL) ساختاریافته هستند و از جداول، سطرها و ستون‌ها استفاده می‌کنند. در مقابل، MongoDB یک دیتابیس NoSQL و سند-گرا است که داده‌ها را در اسناد انعطاف‌پذیر شبیه به JSON ذخیره می‌کند. این ویژگی، MongoDB را برای داده‌های غیرساختاریافته و پروژه‌هایی با نیازمندی‌های در حال تغییر، بسیار مناسب می‌سازد.
MongoDB Compass چیست و چرا باید آن را نصب کنم؟
MongoDB Compass یک رابط کاربری گرافیکی (GUI) رسمی برای MongoDB است. این ابزار به شما اجازه می‌دهد تا داده‌های خود را به صورت بصری مشاهده کنید، کوئری‌ها را اجرا و بهینه‌سازی کنید، ایندکس‌ها را مدیریت نمایید و عملکرد دیتابیس خود را تحلیل کنید، بدون اینکه نیاز به نوشتن دستورات پیچیده در خط فرمان داشته باشید.
چگونه از دیتابیس خود در MongoDB بکاپ بگیرم؟
می‌توانید از ابزار خط فرمان `mongodump` برای بکاپ گرفتن و از `mongorestore` برای بازیابی آن استفاده کنید. `mongodump` یک کپی کامل از داده‌های شما را در فرمت BSON (باینری JSON) ایجاد می‌کند. برای مثال، دستور زیر از یک دیتابیس خاص بکاپ می‌گیرد:

mongodump --db=mydatabase --out="/path/to/backup/directory"
آیا می‌توانم به سرور MongoDB از راه دور متصل شوم؟
بله، اما به صورت پیش‌فرض MongoDB فقط به اتصالات از سیستم محلی (`localhost`) گوش می‌دهد. برای اجازه دادن به اتصالات از راه دور، باید فایل پیکربندی (`mongod.conf`) را ویرایش کرده و مقدار `net.bindIp` را از `127.0.0.1` به `0.0.0.0` (برای پذیرش اتصال از همه IPها) یا IP مشخص سرور خود تغییر دهید. فراموش نکنید که پس از این تغییر، سرویس را ری‌استارت کرده و پورت `27017` را در فایروال باز کنید.
دستور `mongosh` چیست؟
`mongosh` نسل جدید شل یا محیط تعاملی خط فرمان MongoDB است. این ابزار جایگزین شل قدیمی `mongo` شده و قابلیت‌های مدرنی مانند هایلایت کردن سینتکس، تکمیل خودکار هوشمند و فرمت‌بندی بهتر خروجی را ارائه می‌دهد.