سنت او اسسیستم عامل لینوکسمقالات وب

چگونه مونگو دی بی را بر روی سنت او اس 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

 

Rate this post
برچسب ها

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن