Ինչպես տեղադրել MongoDB-ն Debian 12-ում


Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար

  • Debian 12 (Գիրքորդ)
  • Debian 11 (Bullseye)

Այս էջում

  1. Նախադրյալներ
  2. Debian սերվերի պատրաստում
  3. MongoDB սերվերի տեղադրում Debian-ում
  4. MongoDB սերվերի ապահովում նույնականացման միջոցով
  5. Փորձարկել MongoDB Նույնականացումը
  6. Առաջին տվյալների բազայի և օգտագործողի ստեղծում
  7. Եզրակացություն

MongoDB-ն բաց կոդով, միջպլատֆորմային և բաշխված NoSQL (ոչ SQL կամ ոչ հարաբերական) տվյալների բազայի համակարգ է: Ավանդական SQL տվյալների շտեմարանների նման աղյուսակներում տվյալները պահելու փոխարեն, MongoDB-ն օգտագործում է ճկուն փաստաթղթեր՝ տվյալների տարբեր ձևեր պահելու համար: MongoDB-ն օգտագործում է երկուական JSON ձևաչափը՝ BSON, տվյալների պահպանման համար:

MongoDB-ը բաշխված NoSQL տվյալների բազա է՝ ներկառուցված բարձր հասանելիությամբ, ավտոմատ խափանումներով և տվյալների ավելորդությամբ, ինչպես նաև հորիզոնական մասշտաբով բաշխված կլաստերների միջև փոխանակման միջոցով, և այն աջակցում է բազմատարածաշրջանային աշխարհագրական տեղակայմանը: MongoDB-ն նաև տրամադրում է հարցումների API, որն աջակցում է CRUD գործողություններին (կարդալ և գրել), տվյալների ագրեգացման խողովակաշար, տեքստի որոնում և աշխարհատարածական հարցումներ:

Այս ձեռնարկում դուք կսովորեք, թե ինչպես տեղադրել MongoDB-ն Debian 12 սերվերի վրա: Դուք նաև կսովորեք, թե ինչպես միացնել MongoDB նույնականացումը, օգտագործել «mongosh» MongoDB հաճախորդը և օգտագործել հիմնական հարցումները՝ MongoDB-ում նոր օգտվող և տվյալների բազա ստեղծելու համար:

Նախադրյալներ

Այս ձեռնարկից սկսելու համար համոզվեք, որ ունեք հետևյալը.

  • Debian 12 սերվեր
  • Ոչ արմատական օգտվող, ադմինիստրատորի արտոնություններով

Debian սերվերի պատրաստում

Նախքան MongoDB-ն տեղադրել ձեր Debian սերվերում, խորհուրդ է տրվում կիրառել հետևյալ կարգավորումները.

  • Անջատել թափանցիկ հսկայական էջերը (THP) systemd script-ի միջոցով
  • Բարձրացրեք MongoDB օգտագործողի լռելյայն սահմանաչափերը
  • Միացրեք փոխանակումը և ավելացրեք max_mmap հիշողությունը '/etc/sysctl.conf' ֆայլի միջոցով

Այժմ եկեք կարգավորենք Debian սերվերը:

Նախ գործարկեք «nano» հրամանը ստորև՝ նոր սպասարկման ֆայլ ստեղծելու համար /etc/systemd/system/disable-thp.service:

sudo nano /etc/systemd/system/disable-thp.service

Տեղադրեք հետևյալ ծառայության սկրիպտը՝ «transparent_hugepage»-ը «երբեք»-ին կարգավորելու համար:

[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target

Պահպանեք ֆայլը և դուրս եկեք:

Այժմ գործարկեք հետևյալ «systemctl» հրամանը՝ systemd կառավարիչը վերաբեռնելու համար: Այնուհետև սկսեք և միացրեք «disable-thp» ծառայությունը: Դրանով «transparent_hugepage»-ը կանջատվի համակարգի յուրաքանչյուր գործարկման ժամանակ:

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

Հաջորդը, «nano» խմբագրիչով ստեղծեք նոր ֆայլ /etc/security/limits.d/mongodb.conf:

sudo nano /etc/security/limits.d/mongodb.conf

Տեղադրեք ստորև նշված կոնֆիգուրացիան՝ առավելագույն սահմանաչափերի գործընթացը կարգավորելու համար և ֆայլը «64000» «mongod» օգտվողի համար:

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Ավարտելուց հետո պահեք ֆայլը և դուրս եկեք:

Դրանից հետո «/etc/sysctl.conf» ֆայլը խմբագրեք հետևյալով.

sudo nano /etc/sysctl.conf

Ներքևի կոնֆիգուրացիան տեղադրեք տողի ներքևի մասում:

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

Պահպանեք ֆայլը և դուրս եկեք:

Ի վերջո, գործարկեք «sysctl» հրամանը ստորև՝ «/etc/sysctl.conf» ֆայլում փոփոխություններն անմիջապես կիրառելու համար:

sudo sysctl -p

MongoDB սերվերի տեղադրում Debian-ում

Այժմ, երբ դուք կարգավորել եք ձեր Debian սերվերը, եկեք սկսենք MongoDB-ի տեղադրումը: Այս դեպքում դուք MongoDB 7.0-ը կտեղադրեք պաշտոնական MongoDB պահոցի միջոցով ձեր Debian սերվերում:

Տեղադրեք «gnupg» և «curl» փաթեթները ձեր Debian համակարգում հետևյալով.

sudo apt install gnupg curl

Այժմ ավելացրեք MongoDB GPG ստեղնը և պահոցը Debian-ի համար ստորև նշված հրամանով: Այս դեպքում դուք կստեղծեք պահոց MongoDB 7.0-ի համար:

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Հաջորդը, գործարկեք «apt» հրամանը ստորև՝ ձեր փաթեթների ցանկը թարմացնելու և «mongodb-org» փաթեթը տեղադրելու համար:

sudo apt update && sudo apt install mongodb-org -y

Հետևյալ ելքում դուք կարող եք տեսնել MongoDB տեղադրումը:

Տեղադրումն ավարտելուց հետո վերաբեռնեք systemd կառավարիչը «systemctl» հրամանով:

sudo systemctl daemon-reload

Սկսեք և միացրեք «մոնգոդ» ծառայությունը, այնուհետև ստուգեք այն՝ համոզվելու համար, որ ծառայությունն աշխատում է:

sudo systemctl enable --now mongod
sudo systemctl status mongod

Եթե MongoDB-ն աշխատում է, կտեսնեք հետևյալ արդյունքը.

MongoDB սերվերի ապահովում նույնականացման միջոցով

Տեղադրված MongoDB-ի դեպքում դուք պետք է ապահովեք ձեր տեղադրումը` միացնելով MongoDB նույնականացումը: Այս բաժնում դուք կկարգավորեք MongoDB նույնականացումը և կստեղծեք նոր ադմինիստրատոր օգտատեր MongoDB-ի համար: Սա ցույց կտա ձեզ, թե ինչպես օգտագործել «mongosh» կամ MongoDB հաճախորդը և հիմնական MongoDB հարցումները:

Մուտք գործեք MongoDB սերվեր՝ ստորև «mongosh» հրամանով: Կանխադրված MongoDB տեղադրման համար գաղտնաբառ չկա:

mongosh

Գործարկեք «disableTelemetry()» հրամանը՝ MongoDB-ից անանուն տվյալների հավաքագրումն անջատելու համար:

disableTelemetry()

Անցեք «admin» տվյալների բազայի «օգտագործել» հարցումով:

use admin

Այժմ կատարեք հետևյալ հարցումը՝ «myAdmin» նոր օգտվող ստեղծելու համար, որը կօգտագործվի որպես ձեր MongoDB սերվերի ադմինիստրատոր: Մուտքագրեք ձեր գաղտնաբառը, երբ հարցնում են:

db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Մուտքագրեք 'quit()' հրամանը՝ MongoDB սերվերից դուրս գալու համար:

quit()

Հաջորդը, խմբագրեք '/etc/mongod.conf' ֆայլը 'nano' խմբագրիչով:

sudo nano /etc/mongod.conf

Անջատեք «անվտանգություն» տարբերակը և ավելացրեք «լիազորումը. միացված է»՝ MongoDB-ում նույնականացումը միացնելու համար:

security:
  authorization: enabled

Պահպանեք ֆայլը և դուրս եկեք խմբագրիչից:

Այժմ գործարկեք «systemctl» հրամանը ստորև՝ MongoDB սերվերը վերագործարկելու և ձեր փոփոխությունները կիրառելու համար:

sudo systemctl restart mongod

Փորձարկել MongoDB Նույնականացումը

Այժմ, երբ դուք ստեղծել եք ադմինիստրատորի օգտատեր և միացրել եք նույնականացումը ձեր MongoDB սերվերում: Եկեք ստուգենք ձեր կոնֆիգուրացիան՝ մուտք գործելով MongoDB սերվեր 'myAdmin' օգտագործողի միջոցով:

Ներքևում գործարկեք «mongosh» հրամանը, որպեսզի մուտք գործեք MongoDB սերվեր որպես «myAdmin»-ի օգտվող և մուտքագրեք ձեր գաղտնաբառը, երբ ձեզ հուշեն:

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

Մուտք գործելուց հետո կատարեք հետևյալ հարցումը՝ MongoDB սերվերի հետ կապի կարգավիճակը ստուգելու համար:

db.runCommand({connectionStatus : 1})

Ստորև կարող եք տեսնել, որ որպես «myAdmin» օգտվող միացել եք MongoDB սերվերին:

Առաջին տվյալների բազայի և օգտագործողի ստեղծում

Այս բաժնում դուք կստեղծեք նոր տվյալների բազա և օգտվող, որը կօգտագործվի ձեր հավելվածի համար «mongosh» MongoDB հաճախորդի միջոցով: Այսպիսով, համոզվեք, որ դուք գտնվում եք «մոնգոշ» միջավայրում:

Նախ գործարկեք «օգտագործել» հարցումը՝ թիրախային տվյալների բազան ստեղծելու և փոխելու համար: Այս օրինակում դուք կստեղծեք նոր տվյալների բազա «mydb»: Ձեր MongoDB հուշումը կփոխվի «mydb»-ի:

use mydb

Այժմ կատարեք հետևյալ հարցումը՝ նոր օգտվող 'myUser' ստեղծելու համար՝ «mydb» տվյալների բազայում կարդալու և գրելու արտոնություններով: Մուտքագրեք նոր գաղտնաբառ, երբ հարցնում եք:

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Հաջորդը կատարեք հետևյալ հարցումները՝ «admin» տվյալների բազան փոխելու և ձեր MongoDB սերվերի օգտատերերի ցանկը ստուգելու համար:

use admin
db.system.users.find()

Դուք պետք է տեսնեք «myAdmin» և «myUser» օգտվողը, որոնք ստեղծված են հետևյալ կերպ.

Այժմ մուտքագրեք 'quit()' MongoDB սերվերից դուրս գալու համար:

Վերջապես, մուտք գործեք MongoDB սերվեր որպես նոր օգտվող «myUser» տվյալների բազայում «mydb» ստորև նշված հրամանով: Մուտքագրեք ձեր գաղտնաբառը, երբ ձեզ հուշեն:

mongosh --port 27017 -u "myUser" \
--authenticationDatabase "mydb" -p

Գործարկեք ստորև ներկայացված հարցումը՝ ձեր ընթացիկ կապը ստուգելու համար

db.runCommand({connectionStatus : 1})

«authInfo» բաժնում դուք կարող եք տեսնել, որ դուք նույնականացրել եք որպես «myUser» օգտվողի և «mydb» տվյալների բազա:

Եզրակացություն

Շնորհավորում եմ: Դուք ավարտել եք MongoDB 7.0-ի տեղադրումը Debian 12 սերվերի վրա: Դուք նաև սովորեցիք, թե ինչպես ապահովել MongoDB սերվերը՝ միացնելով նույնականացումը, այնուհետև MongoDB-ի համար նոր ադմինիստրատոր օգտատեր ստեղծելով: Վերջապես, դուք սովորել եք, թե ինչպես ստեղծել նոր MongoDB տվյալների բազա և օգտվող ձեր հավելվածների համար: