021-91014618

آموزش نصب دیتابیس MongoDB در لینوکس

MongoDB در لینوکس

حجم اطلاعات سرسام‌آور است! گستره داده‌ها در دنیای رایانه به اندازه‌ای زیاد شده است که از طریق بانک‌های اطلاعاتی معمولی نمی‌توان کلان‌داده‌ها را مدیریت کرد و با آن‌ها تعامل داشت. این داده‌ها نیاز به تحلیل‌های دقیق‌تر دارند و به همین خاطر به دیتابیس‌های NoSQL نیاز خواهیم داشت. در این بلاگ‌پست هم قصد آموزش نصب پایگاه داده MongoDB در لینوکس  را داریم که یکی از معروف‌ترین این دیتابیس‌ها است.

به لطف این پایگاه‌داده‌ها (مثل MongoDB)، اطلاعات مقیاس‌پذیر می‌شوند و با عملکرد بیشتری می‌توان به آن‌ها دسترسی داشت. دراین مورد به‌خصوص، پایگاه داده MongoDB از پلتفرم‌های معروفی مانند ویندوز، لینوکس و مکینتاش پشتیبانی می‌کند و با بیشتر زبان‌های برنامه‌نویسی هم کاملاً سازگار است.

ابتدا بیایید کمی بیشتر با این دیتابیس آشنا شویم.

اطلاعات کلی درباره MongoDB

این آموزش شیوه نصب نسخه تجاری مانگو‌دی‌بی (MongoDB Enterprise) در گنو/لینوکس ردهت اینترپرایز یا سنت‌او‌اس نسخه ۶ و ۷ از طریق پکیج‌های rpm را در بر می‌گیرد. ناگفته نماند در این آموزش تنها به سیستم‌های ۶۴ بیتی اشاره می‌کنیم.

پکیج‌ها

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

توضیح عملکرد پکیجنام پکیج
این پکیج‌ به‌صورت خودکار چهار پکیج زیر را نصب می‌کند.mongodb-enterprise
محتوی mongod daemon و تنظیمات مربوطه و اسکریپت‌هاmongodb-enterprise-server
محتوی Mongos Daemonmongodb-enterprise-mongos
محتوی Mongo Shellmongodb-enterprise-shell
 حاوی ابزارهای mongoimport bsondump, mongodump, mongoexport, mongofiles, mongorestore, mongostat, و mongotop.mongodb-enterprise-tools

 

 

 

 

 

 

 

تنظیمات ‌به صورت پیش‌فرض در مسیر /etc/mongod.conf به آدرس آی‌پی ۱۲۷٫۰٫۰٫۱ اعمال شده است که قبل از نصب باید تغییر دهید.

در بخش بعدی، چگونگی نصب MongoDB روی Centos7 را آموزش خواهیم داد.

آموزش نصب Mongodb در Centos7

Centos7 یکی از محبوب‌ترین توزیع‌های لینوکس محسوب می‌شود. در ادامه، نصب کردن پایگاه داده MongoDB روی این توزیع را یاد می‌گیرید.

ابتدا وارد ترمینال لینوکس CentOS 7 خود شوید.

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

 nano  /etc/yum.repos.d/mongodb-org.repo

سپس، اطلاعات زیر را در آن کپی کرده و فایل را ذخیره کنید.

[mongodb-org-4.0]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

در مرحله بعدی، با دستور زیر لیست repository لینوکس خود را چک کنید.

yum repolist

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

پس از انجام مراحل بالا، دستور زیر را برای نصب mongoDB وارد کنید.

 yum install mongodb-org

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

منتظر بمانید تا نصب MongoDB تمام شود.

systemctl start mongod

systemctl reload mongod

توجه داشته باشید Mongodb تنها برروی سرورهای خارج از ایران قابل نصب است.

حالا همه‌چیز برای نصب پکیج‌های بعدی آماده است.

نصب نسخه MongoDB Enterprise

در این بخش، روش‌های مختلف نصب پایگاه داده MongoDB Enterprise را زیر ذره‌بین می‌بریم:

نصب از طریق پکیج rpm.

این روش با استفاده از پکیج‌هایی که توضیح داده شد انجام می‌شود. این پکیج‌ها به‌صورت خودکار تمامی dependency‌های لازم را نصب می‌کنند و در نتیجه، توصیه می‌کنیم حتماً از همین راه نسخه MongoDB Enterprise را نصب کنید.

اگر قصد استفاده از این روش را دارید، مراحل زیر را به‌ترتیب انجام دهید:

۱. تنظیم مخزن (Configure repository)

یک فایل با نام و آدرس /etc/yum.repos.d/mongodb-enterprise.repo در مسیری که ذکر شد ایجاد کنید تا با استفاده از دستور Yum بتوانید MongoDB Enterprise را نصب کنید:

[mongodb-enterprise]name=MongoDB Enterprise Repositorybaseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.0/$basearch/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

۲. نصب پکیج‌ها

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

نصب نسخه ۴.۰ MongoDB Enterprise

دستور زیر را اجرا کنید:

sudo yum install -y mongodb-enterprise

نصب نسخه‌ای به‌خصوص از MongoDB Enterprise

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

sudo yum install -y mongodb-enterprise-4.0.3 mongodb-enterprise-server-4.0.3 mongodb-enterprise-shell-4.0.3 mongodb-enterprise-mongos-4.0.3 mongodb-enterprise-tools-4.0.3

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

جلوگیری از نصب ورژن‌های جدید  MongoDB Enterprise

همان‌ طور که اشاره شد، می‌توانید هر کدام از نسخه‌های موجود در  MongoDB Enterprise را نصب کنید، از طرف دیگر، Yum پکیج‌های نصب شده را در صورت وجود پکیج‌ جدید به نسخه‌های جدیدتر آپدیت می‌کند. برای جلوگیری از این فرآیند ارتقاء پکیج‌ها، می‌توانید دستور exclude را به فایل /etc/yum.conf اضافه کنید:

exclude=mongodb-enterprise,mongodb-enterprise-server,mongodb-enterprise-shell,mongodb-enterprise-mongos,mongodb-enterprise-tools

فرآیند نصب دستی MongoDB از طریق فایل‌های فشرده

اگر قرار است Mongo DB را به‌صورت دستی نصب کنید، از روش‌های زیر استفاده کنید:

نصب از طریق فایل‌های فشرده tgz.

برای نصب فایل‌های فشرده .tar.gz MongoDB باید Dependensy‌های زیر را نصب کنید:

ردهت اینترپرایز نسخه ۶:

yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi krb5-libs libcurl libpcap net-snmp openldap openssl

ردهت اینترپرایز نسخه ۷:

yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl libpcap lm_sensors-libs net-snmp net-snmp-agent-libs openldap openssl rpm-libs tcp_wrappers-libs

سپس اقدامات زیر را به‌ترتیب انجام دهید:

۱. دانلود فایل‌‌های فشرده MongoDB Enterprise با فرمت .tar.gz

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

۲. باز کردن فایل‌های فشرده‌ای که دانلود کرده‌اید.

برای باز کردن این فایل‌ها طبق مثال زیر با استفاده از دستور tar عمل کنید:

tar -zxvf mongodb-linux-*-4.0.3.tgz

۳. اطمینان خاطر حاصل کنید فایل‌های باینری در دایرکتوری مورد نظر قرار گرفته باشند.

فایل‌های باینری MongoDB پس از اینکه از حالت فشرده خارج شدند، باید در دایرکتوری/ bin قرار گرفته بگیرند، در غیر این صورت، اقدامات زیر را انجام دهید:

فایل‌های باینری را داخل دایرکتوری‌ای که در مسیر (Path) قرار دارد کپی کنید، مثال: /usr/local/bin

برای هر کدام از این فایل‌های باینری از دایرکتوری‌ای که در مسیر (Path) قرار دارد، لینک‌های نمادین ایجاد نمایید.

مسیر (Path) را تغییر دهید تا شامل دایرکتوری مورد نظرتان شود.

برای مثال، می‌توانید خط زیر را به ابتدای اسکریپت اجرایی (bashrc./) اضافه نمایید:

export PATH=<mongodb-install-directory>/bin:$PATH

دایرکتوی نصب منگو دی بی (mongodb-install-directory) را به مسیری که تعریف کرده‌اید تغییر دهید و فرآیند استخراج فایل‌های فشرده Mongo DB را ادامه دهید.

اعمال تنظیمات لازم MongoDB Enterprise

حالا وقت آن است که تنظیمات لازم را برای Mongo DB اعمال کنیم.

تنظیم SELinux

نکته مهم:

اگر از SELinux استفاده می‌کنید، باید حتماً آن را تنظیم کنید تا اجازه اجرا به و راه‌اندازی در توزیع‌های ردهت‌ اینترپرایز یا سنت‌او‌اس را بدهد. برای تنظیم SELinux، سه گزینه پیش‌روی مدیر سیستم وجود دارد:

اگر SELinux در حالت enforcing قرار دارد، باید دسترسی به پورت‌های مربوطه را صادر کنید تا Mongo DB از این پورت‌ها استفاده کند، (برای نمونه ۲۷۰۱۷). برای اعمال تنظیمات پیش‌فرض دستور زیر را اجرا کنید:

semanage port -a -t mongod_port_t -p tcp 27017

ناگفته نماند پس از اجرای این فرمان برای اعمال دستورات، سیستم باید حتماً ری‌استارت شود.

تنظیمات SELinux را در قسمت /etc/selinux/config در حالت Permissive قرار دهید، این کار از طریق اجرای دستور زیر انجام می‌شود:

SELINUX=permissive

برای اعمال شدن این دستور، سیستم باید حتماً ری‌استارت شود.

استفاده از setenforce نیز SELinux را به حالت Permissive تغییر می‌دهد و این کار نیازی به ری‌استارت هم ندارد، اما خب نتیجه این شیوه دائمی نیست.

از طرفی دیگر، می‌توانید انتخاب کنید که پکیج SELinux در حین نصب توزیع گنو/لینوکس نصب نشود، یا اینکه پکیج‌‌های مربوطه را حذف کنید؛ البته این کار دردسرهای خاص خودش را دارد و توصیه نمی‌شود.

دایرکتوری دیتا‌ها و مجوزها

هشدار:

اگر در ردهت نسخه ۷.۰، مسیر نصب دیتا را تغییر دهید، قوانین (Policies) پیش‌فرض SELinux جلوی دسترسی mongod به مسیر جدید را نمی‌دهد؛ مگر اینکه تنظیمات امنیتی را تغییر دهید.

به‌صورت پیش‌فرض، MongoDB instances در این مسیرها قرار می‌گیرند:
فایل‌های دیتا در آدرس /var/lib/mongo
فایل‌های لاگ در آدرس /var/log/mongo

اگر MongoDB را از طریق پکیج‌منیجر نصب کردید، این دایرکتوری‌ها در حین نصب ایجاد خواهند شد؛ اما اگر Mongo DB را از طریق فایل‌های فشرده‌ نصاب آن راه‌اندازی کرده‌اید، می‌توانید این دایرکتوری‌ها را با دستورات <mkdir -p <directory یا sudo mkdir -p (directory) بسته به مکانی که قصد دارید Mongo DB اجرا شود، ایجاد نمایید.

MongoDB، به‌صورت پیش‌فرض از اکانت mongod استفاده می‌کند؛ اگر می‌خواهید کاربر آ‌ن را تغییر دهید باید مجوز دسترسی به /var/lib/mongo و /var/log/mongodb را تغییر دهید تا کاربر مورد نظر به این دایرکتوری‌ها دسترسی داشته باشد.

اختصاص منابع نامحدود به MongoDB

بیشتر توزیع‌های لینوکس، منابع سیستم را بسته به Session‌ها محدود می‌کنند، این محدودیت تأثیر منفی روی عملکرد MongoDB می‌گذارند. در نتیجه، برای کسب اطلاعات بیشتر پیشنهاد می‌کنیم مستندات تنظیمات ulimit را مطالعه بفرمایید.

در بخش بعدی، تعامل گرفتن با MongoDB را بررسی خواهیم کرد.

فرآیند اجرا و تعامل با MongoDB

در این بخش، استفاده از MongoDB در لینوکس را در ۵ بخش آموزش خواهیم داد.

۱. اجرا سرویس MongoDB

برای راه‌‌اندازی mongod، باید فرمان زیر را صادر کنید:

service mongod start

۲. کنترل اجرای موفق MongoDB

برای اینکه از اجرای موفق MongoDB اطمینان خاطر حاصل کنید، می‌توانید به فایل لاگ آن در مسیر /var/log/mongodb/mongod.log مراجعه نمایید.

<initandlisten] waiting for connections on port <port]

در اینجا، قسمت <port> همان چیزی است که به صورت پیش‌فرض در مسیر /etc/mongod.conf, 27017 تنظیم شده است.

پس از اینکه سیستم ری‌استارت شد، با استفاده از دستور زیر می‌توانید از اجرای MongoDB اطمینان خاطر حاصل کنید:

chkconfig mongod on

۳. توقف سرویس MongoDB در لینوکس

اگر به هر دلیلی قصد متوقف کردن فعالیت mongod را داشتید، می‌توانید از دستور زیر کمک بگیرید:

service mongod stop

۴. ری‌استارت کردن سرویس MongoDB در لینوکس

برای ری‌استارت کردن سرویس Mongod فقط کافی است دستور زیر را اجرا کنید:

service mongod restart

فرآیند ری‌استارت شدن و پیام‌های خطای احتمالی را می‌توانید در فایل لاگ مشاهده کنید:

/var/log/mongodb/mongod.log

۵. شروع کار با MongoDB

پوسته Mongo را در همان ماشینی که از mongod استفاده می‌کنید راه‌اندازی نمایید. اجرای Mongo shell بدون هیچ‌گونه تنظیمات در خط‌فرمان صورت می‌گیرد و به mongod که در هاست لوکال با پورت پیش‌فرض ۲۷۰۱۷ قرار دارد راه‌اندازی خواهد شد:

mongo

درضمن، حتی اگر بخواهید به‌کلی این دیتابیس را حذف کنید هم کار سختی نخواهید داشت.

حذف Mongodb

برای حذف کامل MongoDB از سیستمی که نصب کرده‌اید، باید اپلیکیشن‌های MongoDB را در کنار فایل‌های تنظیمات و تمامی دایرکتوری‌هایی که حاوی فایل‌ها و لاگ‌ها هستند را پاک کنید.

هشدار: دستوراتی که در ادامه به آن‌‌ها اشاره می‌کنیم، MongoDB در لینوکس را کاملاً از سیستم مورد نظر حذف و تمامی بانک‌های اطلاعاتی را پاک می‌کند! این فرآیند قابل بازگشت نیست و قبل از شروع پیشنهاد می‌کنیم از تمامی تنظیمات و اطلاعاتی که در MongoDB ایجاد شده است نسخه پشتیبان تهیه کنید.

فرایند حذف MnogoDB، طی ۳ مرحله انجام می‌شود.

۱. توقف MongoDB

با صدور فرمان زیر، MongoDB را متوقف نمایید:

sudo service mongod stop

۲. حذف پکیج‌های MongoDB

در مرحله دوم باید تمامی پکیج‌های MongoDB که پیش از این نصب کرده‌اید را پاک کنید. دستور زیر این کار را برای‌تان انجام می‌دهد:

(sudo yum erase $(rpm -qa | grep mongodb-enterprise

۳. حذف دایرکتوری دیتا‌ها

در مرحله آخر، باید تمامی دیتابیس‌ها و فایل‌های لاگ را با دستور زیر حذف کنید:

sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongo

به این ترتیب، دیتابیس MongoDB کاملاً حذف خواهد شد.

حرف آخر

در این مطلب، سعی کردیم خیلی ساده آموزش MongoDB را خدمت‌تان ارائه کنیم. از نصب گرفته تا حذف کامل آن.

آخرین نوشته ها

تماس با ما

 کرج، شاهین ویلا، بلوار امام خمینی ، خیابان نهم شرقی ، برج شاهین ،طبقه اول واحد2

 91014618

  info@shopingserver.net

با تلفن ثابت بدون پیش شماره قابل شماره گیری هست و در صورتی که با تلفن همراه قصد تماس گرفتن دارید از پیش شماره استان خود را اول شماره وارد نمایید.

Erfan Akbarieh

Erfan Akbarieh

مطالب مرتبط