سنت او اسسیستم عامل لینوکسمقالات وب
چگونه مونگو دی بی را بر روی سنت او اس 7 نصب کنیم؟

همانطور که می دانید مونگو دی بی پایگاه داده مبتنی بر سند است که به صورت متن باز و رایگان در اختیار افراد قرار گرفته است. این پایگاه داده به عنوان پایگاه داده غیر SQL طبقه بندی شده است زیرا بر روی ساختار سنتی مبتنی بر جدول تکیه ندارد. در این مقاله قصد داریم نحوه نصب مونگو دی بی بر روی سرور مجازی سنت او اس 7 را با هم مرور کنیم. پس همراه وب ایده باشید.
پیش نیازها:
قبل از اینکه ادامه مقاله را مطالعه کنید مطمئن شوید که کاربر غیر روت با دسترسی Sudo را دارید.
گام اول: اضافه کردن مخزن مونگو دی بی
پکیج های mongodb-org در داخل مخزن پیش فرض سنت او اس قرار ندارد. با اینحال خود مونگو دی بی مخزن اختصاصی اش را دارد. اجازه دهید این مخزن را به سرور مجازی خود اضافه کنیم. به کمک ویرایشگر Vi ، فایل .repo را برای yum ایجاد کنید:
sudo vi /etc/yum.repos.d/mongodb-org.repo
سپس اطلاعات مخزن را برای آخرین نسخه منتشر شده برای فایل، اضافه نمایید:
/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
فایل را ذخیره کنید و ببندید. حالا باید تایید کنید که مخزن مونگو دی بی در yum موجود است. دستور repolist، فهرستی از مخازن فعال شده را در اختیار شما قرار می دهد.
yum repolist Output . . . repo id repo name base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras mongodb-org-3.2/7/x86_64 MongoDB Repository updates/7/x86_64 CentOS-7 - Updates . . .
خوب حالا که مخزن مونگو دی بی را فعال کردیم می توانیم به سراغ مراحل بعدی نصب این پایگاه داده برویم.
این مقاله را نیز بخوانید: چگونه مونگو دی بی را بر روی اوبونتو ۱۶٫۰۴ نصب کنیم؟
گام دوم: نصب مونگو دی بی
حالا می توانیم پکیج mongodb-org را از مخزن ثالث و به کمکyum، نصب کنیم.
sudo yum install mongodb-org
در این شرایط با دو سوال Is this ok [y/N]: روبرو خواهید شد. سوال اول به شما اجازه می دهد پکیج های مونگو دی بی را نصب کنید و سوال دوم کلید GPG را ایمپورت می کند. ناشر مونگو دی بی نرم افزارهای خود را امضا می کند و yum از این کلید برای تایید یکپارچگی پکیج های دانلود شده بهره می برد. در هر سوال، عبارت y را تایپ کنید و کلید اینتر را بزنید. سپس به کمک دستور زیر سرویس مونگو دی را استارت کنید:
sudo systemctl start mongod
شما می توانید وضعیت سرویس مونگو دی بی را به کمک دستورات Reload یا Stop تغییر دهید. دستور systemctl بعد از اجرای دستور Start؛ نتیجه ای را فراهم نمی کند اما شما می توانید استارت شدن سرویس را با بررسی انتهای فایل mongod.log و به کمک دستور زیر تایید کنید:
udo tail /var/log/mongodb/mongod.log Output . . . [initandlisten] waiting for connections on port 27017
این خروجی نشان می دهد سرویس مونگو دی بی به طور موفقیت آمیزی استارت شده است و می توانیم با شل مونگو دی بی به پایگاه داده دسترسی داشته باشیم:
mongo
نکته: زمانی که شل مونگو دی بی را اجرا می کنید ممکن است با هشداری همچون هشدار زیر روبرو شوید:
** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
مونگو دی بی ممکن است فرآیندهای اضافی را برای مدیریت بار کاری خود آغاز کند. این هشدار نشان می دهد برای اینکه مونگو دی بی به طور موثر کار کند باید تعداد فرآیندهایی که می تواند مدیریت کند نصف تعداد فایل هایی باشد که می توان در یک بازه زمانی، باز کرد. برای حل کردن این مشکل، مقدار processes را با ویرایش فایل 20-nproc.conf تغییر دهید.
sudo vi /etc/security/limits.d/20-nproc.conf
خطوط زیر را به انتهای فایل اضافه کنید:
/etc/security/limits.d/20-nproc.conf . . . mongod soft nproc 32000
به کمک دستور زیر، ریستارت کنید:
sudo systemctl restart mongod
برای اینکه بدانید چگونه می توانید از طریق شل با مونگو دی بی ارتباط داشته باشید، خروجی db.help() را بررسی کنید.
db.help() Output DB methods: db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ] db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.createUser(userDocument) db.currentOp() displays currently executing operations in the db db.dropDatabase() . . .
به کمک دستور زیر از فرآیند مونگو دی بی خارج شوید:
exit Output Bye
گام سوم: تایید شروع پایگاه داده
از آنجایی که برنامه های مبتنی بر پایگاه داده نمی توانند بدون آن، عمل کنند، باید مطمئن شوید که به همراه سیستم مونگو دی بی نیز استارت می شود. برای بررسی وضعیت شروع این پایگاه داده از دستور زیر استفاده کنید:
systemctl is-enabled mongod; echo $?
خروجی صفر نشان می دهد Daemon فعال شده است. خروجی یک نیز تایید می کند Daemon غیر فعال است
output . . . enabled 0
در مواردی که daemon غیر فعال شده است از دستور زیر برای فعالسازی آن استفاده کنید:
sudo systemctl enable mongod
گام چهارم: ایمپورت مجموعه داده های نمونه
بر خلاف سایر پایگاه داده ها، مونگو دی بی داده هایی را در پایگاه داده تست خود ندارد. از آن جایی که ما نمی خواهیم نرم افزار جدید را به کمک داده های تولید امتحان کنیم، می توانید از مجموعه داده نمونه بهره مند شویم. به دایرکتوری قابل نوشتن بروید:
cd /tmp
از دستور زیر استفاده کنید و از مانگو دبی به فایل دانلود شده لینک دهید:
curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
دستور زیر داده ها را وارد پایگاه داده تست می کند.
mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json
خروجی زیر ایمپورت داده از فایل primer-dataset.json را تایید می کند:
output connected to: localhost imported 25359 documents
شل مونگو دی را دوباره آغاز کنید:
mongo
در این شرایط شل، پایگاه داده تست را به صورت پیش فرض انتخاب می کند. می توانید از روش find() برای یافتن فهرست یک موضوع دلخواه در مجموعه داده استفاده کنید. از انجایی که این مجموعه ها ممکن است در برگیرنده ورودی زیادی باشد از روش limit() برای محدود کردن خروجی استفاده کنید.
db.restaurants.find().limit( 1 ).pretty() Output { "_id" : ObjectId("57e0443b46af7966d1c8fa68"), "address" : { "building" : "1007", "coord" : [ -73.856077, 40.848447 ], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "score" : 2 }, { "date" : ISODate("2013-09-11T00:00:00Z"), "grade" : "A", "score" : 6 }, { "date" : ISODate("2013-01-24T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-11-23T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2011-03-10T00:00:00Z"), "grade" : "B", "score" : 14 } ], "name" : "Morris Park Bake Shop", "restaurant_id" : "30075445" }
می توانید این نمونه را بررسی کنید یا آن را به کمک دستور زیر پاک نمایید:
db.restaurants.drop()
در نهایت به کمک دستور زیر خارج شوید.
exit Output Bye