آموزش نصب mongodb روی ویندوز

‏  5 دقیقه
۰۹ تیر ۱۳۹۹
آموزش نصب mongodb روی ویندوز

در مقاله‌ی مونگو دی بی چیست؟ با مونگو دی بی (MongoDB) و کاربردهای آن آشنا شدیم. آموختیم که مونگو دی بی پایگاه داده‌ی (Database) بسیار قدرتمندی است که در سطوح بالاتر توسعه‌ی نرم افزار و برنامه نویسی استفاده می‌شود. همچنین کوئری‌های ساده‌ای دارد و کار با آن، برای کسانی که تجربه‌ی حرفه‌ای در انجام پروژه‌های مختلف برنامه نویسی دارند کار چندان سختی نیست. در این مطلب می‌خواهیم به آموزش نصب mongodb روی ویندوز بپردازیم، تا بتوانید از قدرت این پایگاه داده بهره‌مند شوید. همان‌طور که می‌دانید MongoDB یکی از پرطرفدارترین پایگاه داده‌های NoSQL است که مزیت‌های زیادی در آن وجود دارد و امکانات خیلی خوبی را در اختیار کاربران قرار می‌دهد.

فهرست محتوای این مقاله

مرحله‌ی اول: نصب مونگو دی بی

برای نصب کردن این پایگاه داده در ابتدا وارد صفحه‌ی دانلود سایت مونگو دی بی شوید و آخرین نسخه را دانلود نمایید. توجه داشته باشید که برای این کار نیاز به پروکسی (Proxy) دارید؛ زیرا این سایت برای کاربران ایرانی قابل دسترس نمی‌باشد. بعد از دانلود بر روی فایل مورد نظر دو بار کلیک کنید و قوانین و شرایط آن را قبول کنید و بر روی گزینه next کلیک کنید و حالت Complete را انتخاب کرده و بر روی Install کلیک کنید. در انتها بر روی Finish کلیک کنید.

مرحله‌ی دوم: اضافه کردن MongoDB به متغیرهای سراسری

اگر مرحله‌ی اول را به درستی انجام داده و پوشه‌ی نصب را نیز همان طور پیش‌فرض انتخاب کرده باشید، در صورت وارد شدن به درایو C و مشاهده‌ی پوشه‌ی Program Files، می‌بینید که یک پوشه‌ی جدید با نام MongoDB اضافه شده است. حال برای راه اندازی سریع‌تر، بهتر است MongoDB را به متغیرهای سراسری و گلوبال ویندوز اضافه کنیم تا بتوانیم هر جایی که هستیم با استفاده از Command line یا CMD، پایگاه داده را باز کرده و با آن کار کنیم. برای این کار باید مسیر پوشه‌ی bin در MongoDB را کپی کنید.

آموزش نصب mongodb روی ویندوز

در Control Panel بر روی Advanced system settings کلیک کنید و در پایین بر روی Environment variables کلیک کنید:

آموزش نصب mongodb روی ویندوزحالا بر روی Path دوبار کلیک کنید:

آموزش نصب mongodb روی ویندوز

بعد از باز شدن اطلاعات مربوط به مسیر یا Path، بر روی گزینه‌ی New کلیک کنید و مسیر کپی شده ( به عنوان مثال این مسیر: C:\Program Files\MongoDB\Server\3.6\bin ) را وارد کرده و OK را بزنید.

آموزش نصب mongodb روی ویندوز

مرحله‌ی سوم: ساخت پوشه‌ی دیتا

در این مرحله باید یک پوشه برای data در ریشه درایو C بسازید و دو پوشه‌ی db و log را درون این پوشه قرار دهید. MongoDB به صورت پیش فرض اطلاعات مورد نظر را در این پوشه‌ها ذخیره می‌کند.

مرحله‌ی چهارم: اجرا کردن سرور و اتصال به آن

سرور MongoDB را اجرا کنید. برای این کار CMD را باز و mongod را تایپ کرده وگزینه‌ی Enter را ‌بزنید:

آموزش نصب mongodb روی ویندوز

مشاهده می‌کنید که سرور مونگو دی بی اجرا شده و حالا باید CMD را باز گذاشته و از جاهای دیگر به آن وصل شوید و از آن استفاده کنید. برای این کار می‌توانید از یک CMD دیگر با دستور mongo به این سرور وصل شوید و با پایگاه داده کار کنید. همچنین می‌توانید با نرم افزارهای مختلفی که در این زمینه وجود دارد، که معروف‌ترین آن Robo Mongo هست نیز این کار را انجام دهید. ما در اینجا راه اول را انتخاب کرده و یک CMD دیگر را باز می‌کنیم و mongo را تایپ کرده و گزینه‌ی enter را می‌زنیم:

آموزش نصب mongodb روی ویندوز

مرحله‌ی پنجم: ساخت فایل تنظیمات mongod.cfg

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

برای این کار وارد مسیری که MongoDB را نصب کردید ( مانند C:\Program Files\MongoDB\Server\3.6) شوید و یک فایل با نام mongod.cfg بسازید و کدهای زیر را درون آن قرار دهید:

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

می‌بینید که مسیر پوشه‌های ساخته شده در data را در اینجا مشخص کردیم.

مرحله‌ی ششم: ساخت سرویس MongoDB

8

یک CMD را به صورت Run as administrator راه اندازی کنید و کد زیر را درون آن قرار دهید و Enter بزنید:

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.6\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

آموزش نصب mongodb روی ویندوز

همان‌طور که می‌بینید سرویس مورد نظر با موفقیت ساخته شد.

مرحله‌ی هفتم: راه اندازی سرویس MongoDB

برای این کار در همان CMD که باز هست دستور زیر را وارد کنید:

net start MongoDB

در اینجا اگر مراحل را درست انجام داده باشید، می‌بینید که سرویس MongoDB با موفقیت راه اندازی شده است. حال اگر Task manager را باز کنید و وارد بخش Service‌ها شوید، MongoDB را همانند شکل زیر خواهید دید:

آموزش نصب mongodb روی ویندوز

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

// Stop serrvice
net stop MongoDB

// Delete service
sc.exe delete MongoDB

جمع‌بندی:

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

هدف مجموعه سون لرن افزایش سطح کیفیت آموزش و ساختن راهی برای ورود دانشجویان به بازار کار تخصصی است.

چه امتیازی به این مقاله می دید؟
نویسنده نازنین کریمی مقدم
رویاهاتون رو دنبال کنید ... :)
ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 

نظرات کاربران

کیان

با سلام
آیا امکان دارد که مونگو دی بی را روی یک سرور نصب کنم و iis برنامه روی سرور دیگری باشد و بتوانند با هم ارتباط برقرار نمایند.
با تشکر

نازنین کریمی مقدم

درود
از لحاظ فنی امکانپذیر هست اما باید به موارد امنیتی توجه داشته باشید. توصیه میکنم این پست استک رو مطالعه کنید.

سعید

با سلام وو قت بخیر
خوبین
من ویندوز 8 دارم و نمیتونه منگو دی بیرو نصب کنه
راهی هست؟
ممنونمیشم راهنمایی کنین
https://s4.uupload.ir/files/mdb_udg.jpg

نازنین کریمی مقدم

سلام
متاسفانه مونگو 4.4 پشتیبانی شو از ویندوزهای پایین 10 برداشته، میتونید در داکیومنتهای رسمی سایت هم بخونید.
میتونید ورژن مونگو رو هنگام دانلود پایینتر انتخاب کنید (یادمه که ورژن 2 جواب میداد اما ورژن 3 رو مطمئن نیستم باید بررسی کنید)
یا از مونگو کلاد که فضای ابری در اختیارتون قرار میده استفاده کنید و چیزی نصب نکنید.

morteza

ممنون ولی بدون مرحله ششم هم برا من کار کرد
موفق باشید

ahmad

بعد از این کامند این ارور رو بم میده
net start MongoDB.

More help is available by typing NET HELPMSG پ

نازنین کریمی مقدم

درود. شما باید فایل لاگ رو نگاه کنید تا ببینید مشکل دقیقا رو چیه. اما بر اساس تجربه میتونم بهتون بگم که این خطا وقتی ایجاد میشه که اسم فایل کانفیگتون مثلا mongod.conf هست اما دستور مرحله ششم با نام mongod.cfg میخواد متصل بشه.
بررسی کنید که اگر مشکل از همین بود، فایل با دستور رو همنام کنید. در غیر این صورت بفرمایید تا با هم بیشتر بررسی کنیم و مشکل رو حل کنیم.

متینه

سلام من mongo DB را با موفقیت نصب کردم ولی زمانیکه mongodb compass رو باز می کنم روی صفحه activating plugins باقی میمونه .
کسی میدونه باید پکار کنم؟

saharahsani

سلام ممنونم از پاسخگوييتون..
ببخشيد من تو Replication يکم مشکل دارم ممنون ميشم اگه کار کرديد راهنمايي کنيد.
اگر تو کد نگاه کنيد من سه تا replica set ساختم که اولي (پورت 1000) primery است و پورت 2000 و 3000 , secondary هستند اما براي اين پورت ها توي “stateStr” نوشته “(not reachable/healthy)” به جاي secondary … چراا؟؟! درواقع اون پورت ها secondary نشدن.
توي داکيومنت mongodb هم ظاهرا گفته شده publicKey و priveteKey و فايل هاي mongodb.pem و .. نياز هست داشته باشيم. اما اين فايل ها محتوتاش بايد چي بزاريم؟؟ درست متوجهش نشدم.. ممنون ميشم اگر توضيح بدين.
روي mongodb version 3.6.8 کار ميکنم.

MongoDB Enterprise rs0-0:PRIMARY> rs.status()

{
        "set" : "rs0-0",
        "date" : ISODate("2018-11-05T22:26:56.674Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "syncingTo" : "",
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1541456814, 1),
                        "t" : NumberLong(1)
                },
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1541456814, 1),
                        "t" : NumberLong(1)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1541456814, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1541456814, 1),
                        "t" : NumberLong(1)
                }
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:1000",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 25701,
                        "optime" : {
                                "ts" : Timestamp(1541456814, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-11-05T22:26:54Z"),
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "electionTime" : Timestamp(1541431598, 1),
                        "electionDate" : ISODate("2018-11-05T15:26:38Z"),
                        "configVersion" : 3,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "localhost:2000",
                        "health" : 0,
                        "state" : 8,
                        "stateStr" : "(not reachable/healthy)",
                        "uptime" : 0,
                        "optime" : {
                                "ts" : Timestamp(0, 0),
                                "t" : NumberLong(-1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(0, 0),
                                "t" : NumberLong(-1)
                        },
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2018-11-05T22:26:55.635Z"),
                        "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "replica set IDs do not match,
ours: 5be0612c5ec90f13546a8057; remote node’s: 5be06953187dc649b5c18f79",
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "configVersion" : -1
                },
                {
                        "_id" : 2,
                        "name" : "localhost:3000",
                        "health" : 0,
                        "state" : 8,
                        "stateStr" : "(not reachable/healthy)",
                        "uptime" : 0,
                        "optime" : {
                                "ts" : Timestamp(0, 0),
                                "t" : NumberLong(-1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(0, 0),
                                "t" : NumberLong(-1)
                        },
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2018-11-05T22:26:55.635Z"),
                        "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "Our set name of rs0-2 does not
 match name rs0-0 reported by remote node",
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "configVersion" : -1
                }
        ],
        "ok" : 1,
        "operationTime" : Timestamp(1541456814, 1),
        "$clusterTime" : {
                "clusterTime" : Timestamp(1541456814, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}
محمد اسفندیاری

سلام
این دو تا لینک رو ببینید کمکتون میکنه:
https://serverfault.com/questions/909071/mongodb-secondary-replica-permanently-in-not-reachable-healthy-state
https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

saharahsani

سلام ممنونم..

وقتي که دستور mongod رو توي cmd ميزنم ميگه که tls/ssl فعال نيست. براي فعال سازيش هم همين کاري که گفته رو انجام ميدم اما باز خطا ميده .(خروجيش رو ببينيد)
توي تصويري که شما گذاشتين بعد اجراي mongod , هيچ ايرادي از ssl نميگيره و اينکه open ssl دارين تو تصوير , اما واسه من اينجوري نيست .. بايد open ssl رو جدا نصب کنم؟؟
توي داکيومنت سايت mongo db هم يسري توضيحات داده ظاهرا يه فايل pem. و.. ميخواد ولي من اصلا اين چيزا رو تو پوشه نصب ندارم.
ميشه يه لطف کنيد توضيح بديد که چجوري ميتونم اين مشکل رو حل کنم؟

فکر کنم يکي از مشکلاتم توي sharding و replication , همين مساله باشه.. کانکت نشدن پورت ها و…
ممنون ميشم اگه راهنمايي کنيد.

2018-10-27T23:11:05.753+0330 I CONTROL  [main] Automatically disabling TLS 1.0,
to force-enable TLS 1.0 specify –sslDisabledProtocols ‘none’
2018-10-27T23:11:06.212+0330 I CONTROL  [initandlisten] MongoDB starting : pid=6
984 port=27017 dbpath=C:\data\db\ 64-bit host=Parsian-PC
2018-10-27T23:11:06.212+0330 I CONTROL  [initandlisten] targetMinOS: Windows 7/W
indows Server 2008 R2
2018-10-27T23:11:06.212+0330 I CONTROL  [initandlisten] db version v4.0.3
2018-10-27T23:11:06.212+0330 I CONTROL  [initandlisten] git version: 7ea530946fa
7880364d88c8d8b6026bbc9ffa48c
2018-10-27T23:11:06.213+0330 I CONTROL  [initandlisten] allocator: tcmalloc
2018-10-27T23:11:06.213+0330 I CONTROL  [initandlisten] modules: none
2018-10-27T23:11:06.213+0330 I CONTROL  [initandlisten] build environment:
2018-10-27T23:11:06.213+0330 I CONTROL  [initandlisten]     distmod: 2008pl
محمد اسفندیاری

احتمالا شما نسخه MongoDB 4 رو دانلود و نصب کردید و این نسخه نسبت به نسخه‌های قبلی تغییراتی کرده است که در آدرس زیر میتونین ببینید:
https://docs.mongodb.com/manual/release-notes/4.0-compatibility/
شما باید برای حل کردن این مشکل TLS 1.0 رو غیر فعال کنید و روش اون در این قسمت گفته شده است:
https://docs.mongodb.com/manual/release-notes/4.0-compatibility/#disable-tls-1-0
موفق باشید

saharahsani

ممنون از پاسخگوييتون..
ببخشيد در مورد sharding mongodb يکم مشکل داشتم , چجوري ميتونم سوالاتمو بپرسم؟
و بعد يه سوال ديگه آيا توي robomongo ميشه عمل sharding رو انجام داد؟ براي تست رو لوکال

محمد اسفندیاری

در مورد sharding خیلی اطلاع ندارم متاسفانه
میتونین لینکهای زیر رو ببینید و فکر کنم کمکتون کنه:
https://sanaulla.info/2015/02/02/setting-up-sharded-mongodb-cluster-in-localhost/
https://coderwall.com/p/bzz1ra/set-up-mongodb-shard-windows-local

فک نکنم robomongo این کار رو انجام بده ولی اگر سایت mongodb بتونین حالت cloud که پولی هست رو تهیه کنید، sharding در اون پیاده سازی شده است.

موفق باشید

saharahsani

سلام
ببخشيد ميشه يکم دقيق تر توضيح بدين براي نصب mongo db روي ويندوز کدوم رو بايد دانلود کنيم؟ آيا بايد تويه صفحه دانلود ,بريم تو تب community server و اون فايل .msi رو دانلود کنيم, يا بخش ديگه؟؟

محمد اسفندیاری

بله باید همینکاری که گفتید رو انجام بدین

Tabesh Rouhani

ok شد دوست من
بالاخره پیداش کردم
MongoDB Compass Community
رو باید نصب میکردم

محمد اسفندیاری

آها منظورتون نرم افزار GUI برای کار کردن با MongoDB بوده.
اوکی خیلی هم خوب
البته شما میتونین از RoboMongo هم استفاده کنید
موفق باشید

ما در سون لرن با محدودسازی دسترسی آزاد به اینترنت مخالفیم     اطلاعات بیشتر