Keepalived test


MariaDB ma'lumotlar bazalarini boshqarish



Yüklə 13,79 Mb.
səhifə117/125
tarix21.08.2023
ölçüsü13,79 Mb.
#140060
1   ...   113   114   115   116   117   118   119   120   ...   125
abdurakhmonov

MariaDB ma'lumotlar bazalarini boshqarish


Endi bizning MariaDB serverimiz ishlamoqda va biz nihoyat uni boshqarishni ko'rib chiqishimiz mumkin. Ushbu bo'limda men ma'lumotlar bazasi serveriga mariadb buyrug'i yordamida qanday ulanishni ko'rsataman, bu bizga ma'lumotlar bazalarini yaratish, ularni o'chirish (tashlash), shuningdek, foydalanuvchilar va ruxsatlarni boshqarish imkonini beradi.
Boshlash uchun biz MariaDB uchun ma'muriy foydalanuvchi yaratishimiz kerak. Root hisob qaydnomasi birlamchi ma'muriy foydalanuvchi sifatida allaqachon mavjud, ammo boshqalarga bu hisobdan foydalanishga ruxsat berish yaxshi fikr emas. Buning o'rniga, ma'lumotlar bazalarimizni boshqarish uchun rootdan alohida ma'muriy hisob yaratish mantiqiyroq. Shuning uchun biz ma'lumotlar bazalarini boshqarish bo'yicha muhokamamizni foydalanuvchilarni boshqarish bilan boshlaymiz. MariaDB ichida biz boshqaradigan foydalanuvchilar MariaDB uchun xosdir; bular haqiqiy tizimdagi foydalanuvchi hisoblaridan alohida.
Ma'lumotlar bazalarini boshqarish va ular bilan ishlash uchun biz MariaDB qobig'iga kirishimiz kerak va ma'lumotlar bazasi foydalanuvchilarini yaratishda ham xuddi shunday. Hozirda bizda faqat root hisob qaydnomasi borligi sababli maʼmuriy foydalanuvchini sozlash uchun joriy MariaDB ilovasiga root sifatida kirishimiz kerak boʻladi. Agar siz standart autentifikatsiyani o'rnatgan bo'lsangiz, biz ushbu bobda avvalroq muhokama qilganimizdek, standart vositalardan foydalangan holda so'rovga kirishingiz mumkin:
mariadb -u root -p
root hisobini standart autentifikatsiyaga o'tkazmagan bo'lsangiz, mariadb ga sudo bilan kirishingiz mumkin:
sudo mariadb
sudo dan foydalanmasdan root ga o'tish uchun oddiy foydalanuvchi sifatida quyidagi buyruqdan foydalanishimiz mumkin:
mariadb
MariaDB qobig'iga kirganingizdan so'ng, so'rovingiz quyidagilarga o'zgaradi:
MariaDB [(yo'q)]>
Endi biz yangi ma'muriy foydalanuvchini yaratishimiz mumkin. Men o'z misollarimda administratorimga qo'ng'iroq qilaman, lekin siz xohlagan nomdan foydalanishingiz mumkin. Men ishlagan kompaniyada biz serverlarimizda ma'muriy foydalanuvchi sifatida velociraptor foydalanuvchi nomidan foydalanardik, chunki velociraptordan kuchliroq narsa yo'q (va ular eshiklarni ochishi mumkin). Aqlli ismni ishlatishingiz mumkin, lekin uni eslab qolishingizga ishonch hosil qiling. Nostandart foydalanuvchi nomidan foydalanish noaniqlik tufayli xavfsizlikning qo'shimcha afzalliklariga ega; ism bosqinchi kutgandek bo'lmaydi.
MariaDB-da yangi foydalanuvchi yaratish buyrug'i (buyruqdagi foydalanuvchi nomi va parolni o'zingiz xohlagan hisob ma'lumotlari bilan almashtiring):
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

MySQL sintaksisi haqida gap ketganda, buyruqlar katta harflarga sezgir emas (ma'lumotlar parametrlari bo'lsa ham), lekin ularni ma'lumotlardan ajratish uchun ko'rsatmalarni katta harf bilan yozish odatiy holdir. Ushbu bobning qolgan qismida biz ba'zi buyruqlarni Linux qobig'ida, boshqalarini esa MariaDB qobig'ida bajaramiz. Har bir buyruq qaysi qobiqda bajarilishi kerakligini sizga xabar beraman, lekin agar siz chalkashib ketsangiz, MariaDB buyruqlari faqat bosh harf bilan yozilganligini yodda tuting.

Oldingi buyruqlar yordamida biz administrator foydalanuvchisini yaratamiz va uni localhost bilan cheklaymiz. Bu juda muhim, chunki biz administrator hisobini dunyoga ochishni xohlamaymiz. Biz shuningdek, MariaDB imtiyozlar maʼlumotlarini qayta yuklashiga sabab boʻladigan imtiyozlarni oʻchirib tashlamoqdamiz. FLUSH PRIVILEGES buyrug'i har safar foydalanuvchi qo'shganingizda yoki ruxsatlarni o'zgartirganingizda ishga tushirilishi kerak. Men har doim ham bu buyruqni bajarish zarurligini eslatib o'tmasligim mumkin, shuning uchun siz uni aqliy ravishda yozib qo'yishingiz va uni odat qilib olishingiz mumkin.
Yuqorida aytib o'tganimdek, oldingi buyruq administrator foydalanuvchisini yaratdi, lekin unga faqat localhost dan ulanishga ruxsat beradi. Bu shuni anglatadiki, administrator MariaDB-ga administrator hisobi bilan kirishdan oldin serverga kirishi kerak. Xuddi shu buyruqning misoli sifatida (lekin har qanday boshqa joydan masofaviy kirishga ruxsat berish), quyidagi buyruq aynan shunday qiladigan o'zgarishdir:
CREATE USER 'admin'@'%' IDENTIFIED BY 'password';
Localhost o'rniga foiz belgisini ( % ) ko'ra olasizmi ? Bu, asosan, everywhere degan ma'noni anglatadi, bu biz istalgan manbadan (hatto tashqi tugunlardan ham) tizimga kiradigan foydalanuvchi yaratayotganimizni bildiradi. Biroq, birinchi buyruq bilan foydalanuvchini localhost bilan cheklash orqali biz serverimizni biroz xavfsizroq qilamiz. Shuningdek, ma'lumotlar bazasi ma'muriga serverga masofadan kirishiga ruxsat berishingiz kerak bo'lsa, ma'lum tarmoqlarga kirishni cheklashingiz mumkin:
CREATE USER 'admin'@'192.168.1.%' IDENTIFIED BY 'password';
localhost ga kirishni cheklash kabi xavfsiz emas. Ko'rib turganingizdek, % belgisi asosan joker belgidir, shuning uchun siz ma'lum bir IP yoki hatto ma'lum bir quyi tarmoqdan bo'lish zaruriyatini cheklashingiz mumkin.
Hozircha biz qilgan barcha narsa yangi foydalanuvchi yaratish; biz hali bu foydalanuvchiga ruxsat berganimiz yo'q.
GRANT buyrug'i bilan ruxsatlar to'plamini (shuningdek, grantlar sifatida ham tanilgan) yaratishimiz mumkin. Birinchidan, administrator foydalanuvchimizga localhost dan qo'ng'iroq qilganda ma'lumotlar bazasi serveriga to'liq kirish huquqini beramiz:
PRIVILEGES ON *.* TO 'admin'@'localhost';
FLUSH PRIVILEGES;
Endi bizda server ma'lumotlar bazalarini boshqarish uchun foydalanishimiz mumkin bo'lgan ma'muriy foydalanuvchi mavjud. Biz ushbu hisob qaydnomasidan root hisobi o‘rniga serverimizni boshqarish uchun foydalanishimiz mumkin. Har qanday tizimga kirgan Linux foydalanuvchisi, agar parolni bilsa, ma'lumotlar bazasi serveriga kirishi va uni boshqarishi mumkin. MariaDB qobig'iga biz yaratgan administrator foydalanuvchi sifatida kirish uchun quyidagi buyruq bajariladi:
mariadb -u admin -p
administrator sifatida kirasiz.
mariadb buyrug'iga parolni so'ramasdan berishingiz mumkin:
mariadb -u admin -p
-p opsiyasi va haqiqiy parol o'rtasida bo'sh joy yo'q (garchi -u opsiyasi va foydalanuvchi nomi o'rtasida bo'sh joy qo'yish odatiy holdir ). Bir martalik foydalanuvchi nomi va parolni taqdim etish qanchalik foydali bo'lsa ham, men sizga bu usuldan foydalanishni tavsiya etmayman. Buning sababi shundaki, siz kiritgan har qanday Linux buyrug'i tarixda saqlanadi, shuning uchun har kim sizning buyruqlaringiz tarixini ko'rishi mumkin va ular parolni oddiy matnda ko'radi. Men buni faqat shu yerda eslatib o'tdim, chunki men ko'p ma'murlar buni qilmasliklari kerak bo'lsa ham, shunday qilishadi. Hech bo'lmaganda endi siz bu usulni va nima uchun noto'g'ri ekanligini bilasiz.
administrator hisobi faqat serverdagi ma'lumotlar bazalarini boshqarishi kerak bo'lgan tizim ma'murlari uchun mo'ljallangan. Ushbu hisob paroli unga mutlaqo muhtoj bo'lgan xodimlar yoki ma'murlardan boshqa hech kimga berilmasligi kerak. MariaDB serveriga qoʻshimcha foydalanuvchilar qoʻshilishi mumkin, ularning har biri turli darajadagi kirish imkoniyatiga ega. Yodda tutingki, bizning administrator hisobimiz ma'lumotlar bazalarini boshqarishi mumkin, lekin foydalanuvchilarni emas. Bu juda muhim, chunki siz server ma'murlaridan boshqa hech kimga foydalanuvchi yaratishiga ruxsat bermasligingiz kerak. Foydalanuvchi ruxsatlarini boshqarish uchun siz hali ham root sifatida tizimga kirishingiz kerak bo'ladi.
Maʼlumotlarni oʻqiy olishi kerak boʻlgan, lekin oʻzgartirishlar kirita olmaydigan xodimlar uchun MariaDB uchun faqat oʻqish uchun foydalanuvchi yaratish ham foydali boʻlishi mumkin. MariaDB qobig'iga ( root sifatida ) qaytib, faqat o'qish uchun foydalanuvchini samarali yaratish uchun quyidagi buyruqni berishimiz mumkin:
GRANT SELECT ON *.* TO 'readonlyuser'@'localhost' IDENTIFIED BY
'password';
Ushbu buyruq bilan (va keyinroq imtiyozlarni o'chirish) biz ikkita narsani qildik. Birinchidan, biz yangi foydalanuvchi yaratdik va bitta buyruq bilan ushbu foydalanuvchi uchun grantlarni o'rnatdik. Ikkinchidan, biz faqat oʻqish uchun moʻljallangan foydalanuvchi yaratdik, u maʼlumotlar bazalarini koʻra oladi, lekin ularni boshqara olmaydi (biz SELECT uchun ruxsatlarni cheklab qoʻydik ). Bu xavfsizroq. Amalda, faqat o'qish uchun mo'ljallangan foydalanuvchini ma'lum bir ma'lumotlar bazasi bilan cheklash yaxshiroqdir. Bu tarmoq orqali ma'lumotlar bazasiga ulanadigan va undan ma'lumotlarni o'qishi kerak bo'lgan dasturga ega bo'lgan rivojlanish muhitida odatiy holdir. Tez orada bu stsenariyni ko'rib chiqamiz.
Keyin ma'lumotlar bazasini yaratamiz. MariaDB so'rovida quyidagilarni bajaring:
CREATE DATABASE mysampledb;
Bu oson edi. Endi bizning serverimizda mysampledb nomli ma'lumotlar bazasi bo'lishi kerak. Serverimizdagi barcha ma'lumotlar bazalarini ro'yxatga olish (va ma'lumotlar bazasi to'g'ri yaratilganligini tasdiqlash) uchun biz quyidagi buyruqni bajarishimiz mumkin:
SHOW DATABASES;
Bu quyidagi kabi chiqishni ishlab chiqaradi:

Chiqarish biz uchun yaratilgan ba'zi tizim ma'lumotlar bazalarini ko'rsatadi, ammo bizning yangi ma'lumotlar bazasi ular orasida bo'lishi kerak. Shuningdek, biz foydalanuvchilarni osongina ro'yxatga olishimiz mumkin:
SELECT HOST, USER, PASSWORD FROM mysql.user;
Ushbu buyruqni kiritish quyidagi natijaga o'xshash narsaga olib keladi:

13.2-rasm: MariaDB foydalanuvchilari ro'yxati
Oddiy stsenariyda, o'z ma'lumotlar bazasiga muhtoj bo'lgan dasturni o'rnatayotganda, biz ma'lumotlar bazasini, keyin esa ushbu ma'lumotlar bazasi uchun foydalanuvchini yaratamiz. Biz odatda ushbu foydalanuvchiga faqat ma'lumotlar bazasiga ruxsat berishni xohlaymiz, faqat uning to'g'ri ishlashi uchun zarur bo'lgan ruxsatnoma bilan. Biz allaqachon mysampledb ma'lumotlar bazasini yaratdik, shuning uchun agar biz unga faqat o'qish uchun ruxsati bo'lgan foydalanuvchi yaratmoqchi bo'lsak, buni quyidagi buyruq bilan qilishimiz mumkin:
GRANT SELECT ON mysampledb.* TO 'appuser'@'localhost' IDENTIFIED BY
'password';
Bitta buyruq bilan biz nafaqat foydalanuvchi ilovasini yaratmoqdamiz, balki unga mysampledb maʼlumotlar bazasida SELECT ruxsatiga ega boʻlishiga ruxsat berishdan tashqari, unga parol ham oʻrnatmoqdamiz. Bu faqat o'qish uchun ruxsatga teng. Agar bizning foydalanuvchiga to'liq kirish kerak bo'lsa, biz uning o'rniga quyidagilarni ishlatishimiz mumkin:
GRANT ALL ON mysampledb.* TO 'appuser'@'localhost' IDENTIFIED BY
'password';
Buyruqni to'g'ri bajarganimizni ikki marta tekshirish uchun biz ushbu buyruq yordamida ma'lum bir foydalanuvchi uchun grantlarni ko'rsatishimiz mumkin:
SHOW GRANTS FOR 'appuser'@'localhost';
Endi bizning ilova foydalanuvchimiz faqat mysampledb ma'lumotlar bazasiga to'liq kirish huquqiga ega. Albatta, biz faqat zarurat tug'ilganda ma'lumotlar bazasiga to'liq kirishni ta'minlashimiz kerak. Biz shuningdek, DELETE (foydalanuvchi maʼlumotlar bazasi jadvallaridagi satrlarni oʻchirishga ruxsati bormi yoki yoʻqmi), CREATE (foydalanuvchi maʼlumotlar bazasiga qatorlar qoʻshishi mumkinmi yoki yoʻqligini nazorat qiladi), INSERT (foydalanuvchi quyidagini qila oladimi yoki yoʻqligini boshqaradi) kabi qoʻshimcha ruxsatlarni ham taqdim etishimiz mumkin. jadvalga yangi qatorlar qo'shish), SELECT (foydalanuvchiga ma'lumotlar bazasidan ma'lumotlarni o'qish imkonini beradi), DROP (foydalanuvchiga ma'lumotlar bazasini to'liq o'chirish imkonini beradi) va ALL (foydalanuvchiga hamma narsani beradi). Biz berishimiz yoki rad etishimiz mumkin bo'lgan boshqa ruxsatlar ham bor; batafsil ma'lumot uchun MariaDB hujjatlarini tekshiring. Siz o'rnatayotgan ilovani qondirish uchun foydalanuvchiga berishingiz kerak bo'lgan ruxsat turlari ushbu dasturiy ta'minot hujjatlariga bog'liq bo'ladi. O‘rnatmoqchi bo‘lgan ilovani ishga tushirish uchun qanday ruxsatlar talab qilinishini aniqlash uchun har doim uning o‘rnatish ko‘rsatmalariga murojaat qiling.
Agar siz foydalanuvchi ruxsatini olib tashlamoqchi bo'lsangiz, buni amalga oshirish uchun quyidagi buyruqdan foydalanishingiz mumkin ( myuserni o'chirmoqchi bo'lgan foydalanuvchi hisobi bilan almashtiring va foydalanuvchiga avvaldan ruxsat bergan to'g'ri xost kirishiga ega bo'ling):
DELETE FROM mysql.user WHERE user='myuser' AND host='localhost';
Endi ma'lumotlar bazalariga qaytaylik. Endi biz mysampledb ma'lumotlar bazasini yaratdik, u bilan nima qilishimiz mumkin? Biz, albatta, jadvallar va qatorlarni qo'shamiz! Ma'lumotlar bazasi haqiqiy ma'lumotlarsiz foydasiz, shuning uchun biz bu qanday ishlashini ko'rish uchun ma'lumotlar bazasiga ma'lumotlarni qo'shishning ba'zi misollari orqali ishlashimiz mumkin. Birinchidan, MariaDB qobig'iga mysampledb ma'lumotlar bazasiga to'liq huquqlarga ega foydalanuvchi sifatida kiring. Endi biz biroz dam olishimiz va tarkibni o'zgartirishimiz mumkin. Quyidagi misollarga amal qilishingiz mumkin:
USE mysampledb;
USE buyrug'i bizga ishlashni xohlagan ma'lumotlar bazasini tanlash imkonini beradi. MariaDB soʻrovi MariaDB [(none)]> dan MariaDB [mysampledb]> ga oʻzgaradi. Bu juda foydali, chunki MariaDB taklifi biz hozir qaysi ma'lumotlar bazasi bilan ishlayotganimizni ko'rsatish uchun o'zgaradi. Biz MariaDB ga biz bajarmoqchi bo'lgan barcha buyruqlar uchun ularni mysampledb ma'lumotlar bazasiga qarshi ishlatishni xohlashimizni aytdik.
Endi biz ma'lumotlar bazasida jadval yaratishimiz mumkin. Siznikini nima deb atashingiz muhim emas, chunki biz shunchaki mashq qilyapmiz. Men o'z xodimlarimga qo'ng'iroq qilaman:
CREATE TABLE Employees (Name char(15), Age int(3), Occupation char(15));
Ushbu buyruqni ma'lumotlar bazasidagi ustunlarni ko'rsatish orqali tekshirishimiz mumkin, bu biz kutgan narsani ko'rsatadi:
SHOW COLUMNS IN Employees;
uchta ustundan iborat ( Ism, Yosh va Kasb ) Xodimlar nomli jadval yaratdik. Ushbu jadvalga yangi ma'lumotlarni qo'shish uchun biz quyidagi INSERT buyrug'idan foydalanishimiz mumkin:
INSERT INTO Employees VALUES ('Joe Smith', '26', 'Ninja');
Misol INSERT buyrug'i bizning Xodimlar jadvalimizga yangi xodimni qo'shadi. INSERT dan foydalanganda biz har bir ustun uchun barcha ma'lumotlarni kiritamiz. Bu erda bizda 26 yoshda va kasbi Ninja bo'lgan Jo ismli xodimimiz bor. Qo'shimcha xodimlarni qo'shishingiz mumkin; siz qilishingiz kerak bo'lgan narsa qo'shimcha INSERT bayonotlarini shakllantirish va uchta maydonning har biri uchun ma'lumotlarni taqdim etishdir. Ishingiz tugagach, ushbu jadvaldagi barcha ma'lumotlarni ko'rsatish uchun quyidagi buyruqdan foydalanishingiz mumkin:
SELECT * FROM Employees;

Yozuvni olib tashlash uchun quyidagi buyruq bizga kerak bo'lgan narsani bajaradi:
DELETE FROM Employees WHERE Name = 'Joe Smith';
DELETE FROM buyrug'idan foydalanamiz, biz o'chirmoqchi bo'lgan jadval nomini beramiz ( Xodimlar, bu holda) va keyin WHERE buyrug'imizni qisqartirish uchun ba'zi qidiruv mezonlarini taqdim etish uchun foydalanamiz.
DROP buyrug'i bizga jadvallarni yoki butun ma'lumotlar bazalarini o'chirishga imkon beradi va undan ehtiyotkorlik bilan foydalanish kerak. Men hozirda yaratilgan ma'lumotlar bazasini o'chirishni tavsiya etmayman, chunki biz undan qo'shimcha misollar uchun foydalanamiz. Ammo agar siz haqiqatan ham Xodimlar jadvalini tashlamoqchi bo'lsangiz, quyidagilarni foydalanishingiz mumkin:
DROP TABLE Employees;
Yoki butun ma'lumotlar bazasini o'chirish uchun foydalaning:
DROP DATABASE mysampledb;
Albatta, MariaDB va uning MySQL sintaksisida men taqdim etgan namunalardan ko'ra ko'proq narsa bor, ammo bu kitobdagi misollar bilan tanishish uchun etarli bo'lishi kerak. Men sizga MySQL sintaksisi haqida to'liq ma'lumot berishni istardim, ammo bu bobni osonlikcha o'rtacha miqdordagi sahifalardan tashqariga chiqarishi mumkin. Agar siz o'z mahoratingizni ushbu bobning namunalaridan tashqariga chiqarishni istasangiz, ushbu mavzuga bag'ishlangan ajoyib kitoblar mavjud.
Ushbu bo'limni yopishdan oldin, o'ylaymanki, ma'lumotlar bazangizni qanday zaxiralash va qayta tiklashni ko'rish sizga arziydi. Buning uchun bizning ixtiyorimizda mysqldump buyrug'i mavjud. Ko'rib turganingizdek, uning sintaksisi juda oddiy. Birinchidan, MariaDB qobig'idan chiqing va standart Linux qobig'iga qayting. Biz allaqachon bobda administrator foydalanuvchisini yaratganimiz sababli, biz ushbu foydalanuvchidan zaxira nusxasini yaratish uchun foydalanamiz:
mysqldump -u admin -p --databases mysampledb > mysampledb.sql
mysampledb ma'lumotlar bazasi nusxasini yaratish va uni mysampledb.sql nomli faylda saqlash uchun mysqldump dan foydalanmoqdamiz. MariaDB bizdan tizimga kirishimizni talab qilganligi sababli, biz MariaDB autentifikatsiyasini admin foydalanuvchi nomi bilan -u varianti va parolni so'raydigan -p opsiyasi yordamida amalga oshiramiz. --databases opsiyasi zarur, chunki sukut bo'yicha mysqldump ma'lumotlar bazasini yaratish bayonoti va jadvallarni o'z ichiga olmaydi. Biroq, --databases opsiyasi buni majbur qiladi, bu esa tiklashni osonlashtiradi. Agar biz to'g'ri autentifikatsiya qila oldik deb faraz qilsak, mysampledb ma'lumotlar bazasi tarkibi mysampledb.sql fayliga tashlanadi. Bu eksport juda tez sodir bo'lishi kerak, chunki bu ma'lumotlar bazasi, ehtimol, faqat bitta jadval va bir nechta qatorlarni o'z ichiga oladi. Kattaroq ishlab chiqarish ma'lumotlar bazalarini yo'q qilish soatlab ketishi mumkin.
Zaxira nusxasini tiklash juda oddiy. Biz mariadb buyrug'ini kirish manbai sifatida ishlatiladigan zaxira fayl bilan ishlatishimiz mumkin:
sudo mariadb -u admin -p < mysampledb.sql
Demak, sizda bor. Mysqldump buyrug'i ma'lumotlar bazasini zaxiralashda juda qulay. Keyingi bo'limda biz ikkinchi darajali ma'lumotlar bazasi serverini o'rnatish orqali ishlaymiz.

Yüklə 13,79 Mb.

Dostları ilə paylaş:
1   ...   113   114   115   116   117   118   119   120   ...   125




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin