آموزش نصب مونگو Mongodb روی اوبونتو

با سلام و درود، در حال حاضر خود سایت مونگو آموزش نصب پایاه داده مونگو روی اوبونتو ۱۸.۰۴ و ۱۶.۰۴ را ارائه کرده است. نصب روی اوبونتو ۲۰.۰۴ نیز همانند همان ۱۸.۰۴ می باشد.

قدم اول : افزودن پکیج رپوزیتوری MongoDB در اوبونتو

برای گرفتن آخرین نسخه از MongoDB باید رپوزیتوری به اوبونتو اضافه کنیم. برای این کار کافیست دستور زیر را اجرا کنید:

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

پس از افزودن رپوزیتوری (مخزن اوبونتو)، از دستور زیر استفاده کنید تا رپوزیتوری مونگو به سیستم اضافه شود:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

در دستور فوق از bionic استفاده شده، یعنی همان ۱۸.۰۴، ولی روی اوبونتو ۲۰.۰۴ یا Focalنیز جوابگو می باشد.

قدم دوم: نصب MongoDB روی اوبونتو 20.04

خب برای نصب کافیست دو دستور زیر را اجرا کنید:

sudo apt update
sudo apt install mongodb-org

قدم سوم: مدیریت MongoDB

پس از نصب از دستورات زیر برای Stop، Start و Enableمونگو دیبی استفاده کنید:

sudo systemctl stop mongod.service
sudo systemctl start mongod.service
sudo systemctl enable mongod.service

به صورت پیش فرض، مونگو به پورت 27017 گوش می دهد. پس از نصل Local server باید بتواند با MongoDB ارتباط برقرار کند. برای آنکه متوجه شوید مونگو در حال اجرا است یا خیر، از دستور زیر استفاده کنید:

sudo systemctl status mongod
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2020-07-13 16:27:20 +0430; 21min ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 112771 (mongod)
     Memory: 173.0M
     CGroup: /system.slice/mongod.service
             └─112771 /usr/bin/mongod --auth --config /etc/mongod.conf

جولای 13 16:27:20 asemanexpress.local systemd[1]: Started MongoDB Database Server.

برای ارتباط با شل MongoDB از دستور زیر استفاده کنید:

mongo --host 127.0.0.1:27017

با چیزی شبیه زیر روبرو خواهید شد:

ongoDB shell version v4.2.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1b88c27f-e477-4a29-b562-835ee56591b5") }
MongoDB server version: 4.2.6
Welcome to the MongoDB shell.
For interactive help, type "help".

قدم چهارم: اضافه کردن کاربر ادمین

به صورت پیش فرض، authentication برای کاربران MongoDB فعال نمی باشد. در محیط های عملیاتی ممکن است نیاز داشته باشید که سرورتان را ایمن کنید و احراز هویت کاربر را فعال کنید.

برای این کار دستورات زیر را پیش روید، پس از لاگین به MongoDB server:

> use admin

سپس از دستور زیر برای ساخت یک کاربر ادمین استفاده کنید:

> db.createUser({user:"admin", pwd:"new_password_here", roles:[{role:"root", db:"admin"}]})

پس از دستور فوق خروجی زیر را خواهید دید:

Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}

از محیط شل خارج شوید و MongoDB logon authentication را فعال کنید، دستور زیر را اجرا کنید تا فایل کانفیگ MongoDB باز شود:

sudo nano /lib/systemd/system/mongod.service

سپس خط ExecStart=/usr/bin/mongod –config /etc/mongod.conf را باید همانند زیر تغییر دهید (اضافه کردن –auth به آن)

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
User=mongodb
Group=mongodb
EnvironmentFile=-/etc/default/mongod
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

ذخیره و خارج شوید.

MongoDB را ری استارت کنید تا تغییرات اعمال شود:

sudo systemctl daemon-reload
sudo service mongod restart

پس از نصب MongoDB فایل کانفیگ پیش فرض آن در مسیر /etc/mongod.conf قرار دارد.

پیشنهاد میشه تا authentication را فعال کنید تا تمامی گاربران بتوانند بدون انجام اهراز هویت به پیاگاه داده وصل شوند. برای این کار، فایل کانفیگ را باز کنید:

sudo nano /etc/mongod.conf

سپس دو خط زیر را در قسمت security آن وارد کنید:

security:
  authorization: enabled

محتویات فایل کانفیگ، به شکل زیر خواهد شد:

  GNU nano 4.8                                  /etc/mongod.conf                                            
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:
security:
  authorization: enabled
#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

سرویس مونگو را ریست کنید:

sudo service mongod restart

حال از دستور زیر استفاده کنید تا مطمین شوید رمز عبور تعریف شده برقرار است :

mongo -u admin -p --authenticationDatabase admin