نحوه نصب MongoDB در اوبونتو ۲۴.۰۴ #
MongoDB یک پایگاه داده NoSQL متنباز است که دادهها را در اسناد انعطافپذیر و شبیه JSON ذخیره میکند. این پایگاه داده از ساختارهای داده پویا، پرسوجوهای موقت، نمایهسازی و تجمیع بلادرنگ برای تجزیه و تحلیل کارآمد دادهها پشتیبانی میکند. برخلاف پایگاههای داده رابطهای سنتی که از جداول و طرحهای ثابت استفاده میکنند، MongoDB به دلیل مدل مبتنی بر سند با ساختارهای داده پویا و سلسله مراتبی، بسیار مقیاسپذیر و مناسب برای مدیریت دادههای بدون ساختار یا نیمه ساختار یافته است.
این مقاله نحوه نصب MongoDB در اوبونتو ۲۴.۰۴ را توضیح میدهد. شما سرویس MongoDB را پیکربندی خواهید کرد، پایگاه داده را ایمن میکنید و یک پایگاه داده نمونه برای انجام عملیات CRUD ضروری ایجاد خواهید کرد.
پیش نیازها #
قبل از شروع، شما نیاز دارید:
- یک سرور مجازی با دسترسی root
نصب مونگو دی بی #
MongoDB در مخازن بسته پیشفرض اوبونتو ۲۴.۰۴ موجود نیست. برای اضافه کردن مخزن MongoDB و نصب MongoDB، مراحل زیر را دنبال کنید.
- به صفحه انتشار MongoDB مراجعه کنید و آخرین نسخه را برای نصب تأیید کنید. برای مثال،
MongoDB 8.0. - کلید MongoDB GPG را وارد کنید.کنسول
$ curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
دستور بالا
۸.۰کلید GPG نسخه MongoDB را وارد میکند و آن را به حلقههای کلید APT شما اضافه میکند تا از صحت بسته اطمینان حاصل شود. - مخزن MongoDB را به منابع مخزن APT خود اضافه کنید.کنسول
$ echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
- برای اعمال تغییرات مخزن MongoDB، اندیس بسته APT را بهروزرسانی کنید.کنسول
$ sudo apt update - مونگو دیبی را نصب کنید.کنسول
$ sudo apt install -y mongodb-org - نسخه MongoDB نصب شده را تأیید کنید.کنسول
$ mongod --versionخروجی شما باید مشابه تصویر زیر باشد.
db version v8.0.5 Build Info: { "version": "8.0.5", "gitVersion": "cb9e2e5e552ee39dea1e39d7859336456d0c9820", "openSSLVersion": "OpenSSL 3.0.13 30 Jan 2024", "modules": [], "allocator": "tcmalloc-google", "environment": { "distmod": "ubuntu2404", "distarch": "x86_64", "target_arch": "x86_64" } }
مدیریت سرویس سیستم MongoDB #
MongoDB از mongodسرویس سیستم برای اجرای سرور پایگاه داده و مدیریت عملیات زمان اجرا استفاده میکند. مراحل زیر را دنبال کنید تا سرویس MongoDB به طور خودکار هنگام بوت شدن شروع به کار کند و وضعیت آن را مدیریت کند.
- فعال کردن MongoDB برای شروع خودکار در هنگام بوت شدن سیستم.کنسول
$ sudo systemctl enable mongod
- سرویس MongoDB را شروع کنید.کنسول
$ sudo systemctl start mongod - وضعیت سرویس MongoDB را مشاهده کنید تا از فعال بودن آن اطمینان حاصل کنید.کنسول
$ sudo systemctl status mongodخروجی شما باید مشابه تصویر زیر باشد.
● mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; preset: enabled) Active: active (running) since Mon 2025-03-03 21:40:54 UTC; 6s ago Docs: https://docs.mongodb.org/manual Main PID: 2568 (mongod) Memory: 86.3M (peak: 86.5M) CPU: 443ms CGroup: /system.slice/mongod.service └─۲۵۶۸ /usr/bin/mongod --config /etc/mongod.conf
امنسازی مونگودیبی #
MongoDB به طور پیشفرض نیازی به احراز هویت ندارد، که ناامن است و دادههای شما را در معرض کاربران غیرمجاز قرار میدهد. برای ایجاد یک کاربر ادمین، مراحل زیر را دنبال کنید و احراز هویت را برای ایمنسازی سرور پایگاه داده MongoDB فعال کنید.
- به پوسته MongoDB دسترسی پیدا کنید.کنسول
$ mongosh - به
adminپایگاه داده تغییر دهید.> use adminadminپایگاه داده مدیریتی پیشفرض برای مدیریت کاربران و عملیات سطح سیستم است. - یک کاربر ادمین جدید با امتیازات کامل برای دسترسی به هر پایگاه دادهای ایجاد کنید.
mongodbadminنام کاربری دلخواه خود را جایگزین کنید و در صورت درخواست، یک رمز عبور قوی وارد کنید.> db.createUser( { user: "mongodbadmin", pwd: passwordPrompt(), roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" } ] } )خروجی شما باید مشابه تصویر زیر باشد.
Enter password ********{ ok: 1 } - تمام کاربران MongoDB را فهرست کنید و تأیید کنید که
mongodbadminکاربر در دسترس است.> db.getUsers()خروجی شما باید مشابه تصویر زیر باشد.
{ users: [ { _id: 'admin.mongodbadmin', userId: UUID('288c02ec-d4a2-4631-b896-6ce6a537529a'), user: 'mongodbadmin', db: 'admin', roles: [ { role: 'dbAdminAnyDatabase', db: 'admin' }, { role: 'userAdminAnyDatabase', db: 'admin' }, { role: 'readWriteAnyDatabase', db: 'admin' } ], mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ] } ], ok: 1 } - از پوسته MongoDB خارج شوید.
> exit - برای فعال کردن احراز هویت، فایل پیکربندی MongoDB را باز کنید.کنسول
$ sudo nano /etc/mongod.conf - بخش مورد نظر را پیدا کنید
#security:، نماد نظر (#) را حذف کنید وauthorizationوضعیت را به تغییر دهیدenabled.yamlsecurity: authorization: enabled
فایل را ذخیره کنید و ببندید.
- برای اعمال تغییرات پیکربندی، سرویس MongoDB را مجدداً راهاندازی کنید.کنسول
$ sudo systemctl restart mongod
دسترسی و استفاده از MongoDB #
دسترسی به MongoDB از طریق پوسته تعاملی آن به شما امکان میدهد پایگاههای داده، کاربران و دادهها را مستقیماً مدیریت کنید. برای ورود به سیستم، ایجاد پایگاه داده، اضافه کردن کاربران و انجام عملیات اولیه CRUD (ایجاد، خواندن، بهروزرسانی، حذف) مراحل زیر را دنبال کنید.
mongodbadminبه عنوان کاربر ادمینی که قبلاً ایجاد کردهاید، وارد پوسته MongoDB شوید .کنسول$ mongosh -u mongodbadmin -p --authenticationDatabase adminرمز عبور مدیر سیستم را که قبلاً تنظیم کردهاید، هنگام درخواست، وارد کنید.
- یک
negarnovin_example_dbپایگاه داده جدید ایجاد کنید.> use negarnovin_example_db - یک کاربر جدید
negarnovinuserبا دسترسی کامل بهnegarnovin_example_dbپایگاه داده ایجاد کنید.> db.createUser( { user: "negarnovinuser", pwd: passwordPrompt(), roles: [ { role: "readWrite", db: "negarnovin_example_db" } ] } )وقتی از شما خواسته شد، یک رمز عبور قوی وارد کنید.
خروجی شما باید مشابه تصویر زیر باشد.
Enter password ********{ ok: 1 } - از پوسته MongoDB خارج شوید.
> exit - به پوسته MongoDB وارد شوید
negarnovinuserو در صورت درخواست، رمز عبور را وارد کنید.کنسول$ mongosh -u negarnovinuser -p --authenticationDatabase negarnovin_example_db - به
negarnovin_example_dbپایگاه داده تغییر دهید.> use negarnovin_example_db messagesیک سند جدید را به همراه پیام به مجموعه اضافه کنیدGreetings from negarnovin.> db.messages.insertOne({ message: "Greetings from negarnovin" })خروجی شما باید مشابه تصویر زیر باشد.
{ acknowledged: true, insertedId: ObjectId('67c5d0fe8da0f3d3af51e944') }- تمام اسناد موجود در
messagesمجموعه را مشاهده کنید و تأیید کنید که سند جدید در دسترس است.> db.messages.find()خروجی شما باید مشابه تصویر زیر باشد.
[ { _id: ObjectId('67c5d0fe8da0f3d3af51e944'), message: 'Greetings from negarnovin' } ] - پیام را از
Greetings from negarnovinبهGreetings from negarnovin Docsدر سند موجود بهروزرسانی کنید.> db.messages.updateOne( { message: "Greetings from negarnovin" }, { $set: { message: "Greetings from negarnovin Docs" } } )خروجی شما باید مشابه تصویر زیر باشد.
{ acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } messagesبرای تأیید بهروزرسانی، تمام اسناد موجود در مجموعه را مشاهده کنید .> db.messages.find()خروجی شما باید مشابه تصویر زیر باشد.
[ { _id: ObjectId('67c5d0fe8da0f3d3af51e944'), message: 'Greetings from negarnovin Docs' } ]- سند را از
messagesمجموعه حذف کنید.> db.messages.deleteOne({ message: "Greetings from negarnovin Docs" })خروجی شما باید مشابه تصویر زیر باشد.
{ acknowledged: true, deletedCount: 1 } - از پوسته MongoDB خارج شوید.
> exit
نتیجهگیری #
شما MongoDB را روی اوبونتو ۲۴.۰۴ نصب کردهاید، سرور پایگاه داده را با احراز هویت ایمن کردهاید و عملیات پایگاه داده را انجام دادهاید. یک پایگاه داده، یک کاربر با امتیازات مدیریتی ایجاد کردهاید و عملیات CRUD، از جمله درج، بهروزرسانی و حذف اسناد را انجام دادهاید. برای اطلاعات بیشتر و گزینههای پیکربندی، به مستندات MongoDB مراجعه کنید .