इस ब्लॉग में हमने कुछ डेटाबेस सिस्टम के बारे में बात की है, जिनमें से सबसे लोकप्रिय हैं मारबीडीबी और माईएसक्यूएल, क्योंकि वे सिस्टम हैं जो आमतौर पर ज़ैम्प या लैम्प में शामिल हैं। इस बार हम बात करने वाले हैं एक और प्रणाली जो है MongoDB।
MongoDB है एक खुला स्रोत दस्तावेज़ उन्मुख NoSQL डेटाबेस प्रणाली, ये है उच्च प्रदर्शन डेटा दृढ़ता के लिए बनाया गया एक आधुनिक दस्तावेज़ डेटाबेस प्रबंधन प्रणाली, उच्च उपलब्धता, साथ ही स्वचालित स्केलिंग, NoSQL तकनीक की तकनीक पर आधारित है।
डेटा को टेबलों में सहेजने के बजाय जैसे कि रिलेशनल डेटाबेस में किया जाता है, MongoDB एक दस्तावेज़ में डेटा संरचनाओं को बचाता है, जो एक डेटा संरचना है जिसमें फ़ील्ड और वैल्यू पेयर शामिल होते हैं (MongoDB दस्तावेज़ JSON ऑब्जेक्ट्स के साथ तुलनीय हैं)।
क्योंकि यह उच्च प्रदर्शन और उत्कृष्ट मापनीयता विशेषताओं को प्रदान करता है, इसलिए इसका उपयोग आधुनिक अनुप्रयोगों के निर्माण के लिए किया जा रहा है जिनके लिए शक्तिशाली, मिशन-महत्वपूर्ण और अत्यधिक उपलब्ध डेटाबेस की आवश्यकता होती है।
Ubuntu पर MongoDB स्थापना
हमारे सिस्टम पर इस डेटाबेस सिस्टम को स्थापित करने के लिए, हमें केवल एक टर्मिनल खोलना है और उसमें निम्नलिखित कमांड को निष्पादित करना है:
sudo apt install mongodb
स्थापना की गई, MongoDB सेवा सिस्टमड के माध्यम से स्वचालित रूप से शुरू होगी और प्रक्रिया 27017 पोर्ट पर चलेगी। आप कमांड का उपयोग करके इसकी स्थिति देख सकते हैं:
sudo systemctl status mongodb
यदि नहीं, तो हम इस कमांड के साथ शुरुआत को बाध्य कर सकते हैं:
sudo systemctl start mongodb
MongoDB के लिए दूरस्थ कनेक्शन सक्षम करना
डिफ़ॉल्ट रूप से MongoDB डेटाबेस सिस्टम 27017 पोर्ट का उपयोग करता है जिसे हमें खोलना चाहिए दूरस्थ कनेक्शन स्वीकार करने के लिए, हम केवल इसे निम्नलिखित कमांड के साथ सक्षम करते हैं।
sudo ufw allow 27017
डिफ़ॉल्ट रूप से, पोर्ट 27017 केवल स्थानीय पते 127.0.0.1 से एक्सेस किया जा सकता है। MongoDB को दूरस्थ कनेक्शन की अनुमति देने के लिए, फ़ाइल में सर्वर का आईपी पता जोड़ना आवश्यक है /etc/mongodb.conf
बस इसे संपादित करें:
sudo nano
और हम कुछ इस तरह देख सकते हैं:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
जिसे हम अपने सर्वर से डेटा के साथ संपादित करते हैं।
हर जगह से MongoDB तक पहुंच की अनुमति देने से, यह डेटाबेस में डेटा तक अप्रतिबंधित पहुंच प्रदान करता है। इसलिए, MongoDB पोर्ट के स्थान विशिष्ट डिफ़ॉल्ट IP पते तक पहुंच देना बेहतर है।
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
एक बार यह हो जाने के बाद, यह सेवा को फिर से शुरू करने के लिए पर्याप्त है ताकि नए परिवर्तन शुरुआत में ही लोड हो जाएं, यह हम इसके साथ करते हैं:
sudo systemctl restart mongodb
पासवर्ड के साथ MongoDB में एक उपयोगकर्ता बनाएँ
डिफ़ॉल्ट रूप से डेटाबेस में काफी सरल पहुंच होती है, इसलिए इसे सुदृढ़ करने के लिए हम एक पासवर्ड के साथ एक उपयोगकर्ता बना सकते हैं।
MongoDB SCRAM प्रमाणीकरण तंत्र का उपयोग करता है डिफ़ॉल्ट रूप से। सिस्टम पर SCRAM का उपयोग करना उपयोगकर्ता नाम, पासवर्ड और प्रमाणीकरण डेटाबेस के खिलाफ आपूर्ति की गई उपयोगकर्ता क्रेडेंशियल्स की पुष्टि करता है।
बस डेटाबेस कंसोल को निम्न कमांड से शुरू करें:
Mongo
हम मौजूदा डेटाबेस की एक सूची बना सकते हैं:
show dbs
हम एक उपयोगकर्ता बना सकते हैं जो हमें उपयोगकर्ताओं और कार्यों का प्रबंधन करने की अनुमति देगा जैसे कि उपयोगकर्ता बनाना, उपयोगकर्ता भूमिकाएँ प्रदान करना या रद्द करना, और कस्टम भूमिकाएँ बनाना या संशोधित करना।
बस टाइप करो
use admin
और हम निम्नलिखित कमांड के साथ उपयोगकर्ता बनाते हैं, जहां हम उपयोगकर्ता के नाम "रूट" और पासवर्ड "पासवर्ड" का उपयोग करते हैं, जो कि हम उपयुक्त मानते हैं।
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
एक बार यह पूरा हो जाने के बाद, हमें प्रमाणीकरण विधि को सक्षम करना होगा इसके लिए हम निम्नलिखित फाइल को संपादित करने जा रहे हैं:
sudo nano /lib/systemd/system/mongodb.service
और हम अगली पंक्ति की तलाश करेंगे:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
और संपादित करें ताकि यह इस प्रकार है:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
अब हम बस डेटाबेस में रिबूट करते हैं
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y हम इसके साथ प्रमाणीकरण विधि का परीक्षण करते हैं:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
इस त्रुटि के साथ मेरी मदद करो।
२०२१-०३-२४ टी २१: ३३: १६.२३३ + ०००० ई क्वर्टी [थ्रेड १] त्रुटि: सूचीकर्ता विफल:
«ठीक है»: 0,
"त्रुटि": "कमांड को निष्पादित करने के लिए व्यवस्थापक पर अधिकृत नहीं है {listDat डेटाबेस: 1.0, $ db: \" admin \ "}",
"कोड": 13,
"कोडनाम": "अनधिकृत"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (शेलहेल्प 2): 1: 1