02 β MySQL'ni o'rnatish va ishga tushirish¶
β¬ οΈ Oldingi: 01 β Ma'lumotlar bazasi nima? Β· π README Β· Keyingi: 03 β Amaliyot bazalarini tayyorlash (4 ta tizim) β‘οΈ
Bu bobda: MySQL aslida qanday ishlashini (doim ishlab turadigan server va unga ulanadigan klientlar), uni Windows, macOS va Linux'ga o'rnatishni, terminal hamda DBeaver orqali ulanishni o'rganamiz va birinchi SQL buyruqlarimizni bajarib ko'ramiz.
Avval tushunib olaylik: MySQL β bu server¶
MySQL'ni o'rnatganingizda kompyuteringizga oddiy dastur emas, server o'rnatiladi. Server β fonda jim ishlab turadigan dastur: siz uni Word'dek ochib o'tirmaysiz, u doim "navbatchilikda" turadi va kim ulansa, o'shaning so'roviga javob beradi.
Buni call-markazga o'xshatish mumkin: operator doim ish joyida o'tiradi, kim telefon qilsa β javob beradi. MySQL server ham xuddi shunday: u kompyuterda 3306-portda (serverning "telefon raqami") kutib turadi.
Klient β server bilan gaplashadigan har qanday dastur. Terminal (mysql buyrug'i), DBeaver kabi grafik dastur yoki o'zingiz yozgan PHP/Python kod β hammasi klient. Server bitta, klientlar esa istalgancha β hatto bir vaqtning o'zida bir nechta klient ulanib ishlayverishi mumkin.
Eng oson yo'l β har bir OS uchun¶
Windows: Laragon dasturini yuklab o'rnating (Full versiyasi). Ichida MySQL tayyor keladi. O'rnatib, "Start All" tugmasini bosing β MySQL server ishga tushadi. Bo'ldi.
π Rasmiy yo'l ham bor: mysql.com saytidan "MySQL Installer for Windows" yuklab o'rnatish. Lekin boshlovchiga Laragon ancha oson β keyinroq xohlasangiz rasmiy usulga o'tib olasiz.
macOS: Terminal'da:
Birinchi qator MySQL'ni o'rnatadi, ikkinchisi serverni ishga tushiradi (va kompyuter qayta yonganda ham avtomatik ishga tushadigan qilib qo'yadi). Homebrew o'rnatgan MySQL'daroot paroli boshida bo'sh bo'ladi.
Linux (Ubuntu):
Server ishlayotganini tekshirish:sudo systemctl status mysql β yashil active (running) yozuvi chiqsa, hammasi joyida.
β οΈ Ubuntu'da bitta nozik joy bor: yangi o'rnatilgan MySQL'da root foydalanuvchisi parol bilan emas, tizim foydalanuvchisi orqali kiradi. Shuning uchun birinchi marta mysql -u root -p emas, sudo mysql deb ulaning. Keyinchalik xohlasangiz root'ga parol qo'yib olasiz (foydalanuvchilar va parollarni 27-bobda batafsil ko'ramiz).
Bazaga ulanish β 2 usul¶
1-usul: qora oyna (terminal/CMD):
mysql β klient dasturining nomi, -u root β "root nomli foydalanuvchi bilan kiraman", -p β "parolni so'ra" degani. Laragon'da parol bo'sh (shunchaki Enter bosing). Manzil ko'rsatmadik, chunki klient standart bo'yicha o'z kompyuteringizdagi (localhost) serverga, 3306-portga ulanadi.
Muvaffaqiyatli ulansangiz, shunday ko'rinadi:
Bu β "men tayyorman, buyruq bering" degani. Endi siz to'g'ridan-to'g'ri MySQL server bilan gaplashyapsiz.2-usul: grafik dastur (tavsiya β boshlovchiga osonroq): - DBeaver (bepul, hamma OS) β dbeaver.io - HeidiSQL (bepul, Windows) - TablePlus (chiroyli, macOS/Windows) - MySQL Workbench (rasmiy, bepul) β mysql.com
DBeaver'da: New Connection β MySQL β host: localhost, user: root, parol β Test Connection β Finish.
π‘ DBeaver "Public Key Retrieval is not allowed" degan xato bersa, qo'rqmang β bu MySQL 8 bilan tez-tez uchraydi. Ulanish sozlamalarida Driver properties bo'limini ochib, allowPublicKeyRetrieval ni TRUE qiling β ishlab ketadi.
Esda tuting: grafik dastur ham, terminal ham β bitta serverga ulanadigan klientlar, xolos. Qaysi biri qulay bo'lsa, o'shanisini ishlating; kitobdagi misollarni ikkalasida ham bajarsa bo'ladi.
Birinchi buyruqlar¶
Natija β serverdagi mavjud bazalar ro'yxati:+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
SELECT NOW(); -- hozirgi sana va vaqt
SELECT 2 + 2; -- ha, kalkulyator sifatida ham ishlaydi :)
SELECT VERSION(); -- MySQL versiyasi (8.0 yoki undan yangi bo'lishi kerak)
Muhim qoidalar:
- Har bir buyruq nuqta-vergul ; bilan tugaydi. Unutsangiz, MySQL "buyruq hali davom etyapti" deb kutib turadi β ; terib Enter bossangiz bajariladi
- SQL buyruqlari katta-kichik harfga befarq: select = SELECT. Lekin odat bo'yicha buyruqlar KATTA, jadval/ustun nomlari kichik yoziladi β kod o'qishga oson bo'ladi
- Izoh (komment) yozish mumkin: -- bu izoh (ikki defisdan keyin bo'sh joy bo'lishi shart!) yoki # bu ham izoh
- Xato yozsangiz β qo'rqmang, MySQL xato xabarini ko'rsatadi, hech narsa buzilmaydi
Tez-tez uchraydigan muammolar¶
| Xato xabari | Sababi | Yechimi |
|---|---|---|
Access denied for user 'root' |
Parol noto'g'ri | Laragon'da parol bo'sh; Ubuntu'da sudo mysql deb kiring |
Can't connect to MySQL server (2003) |
Server ishga tushmagan | Laragon'da "Start All"; Linux'da sudo systemctl start mysql |
ERROR 1064 ... your SQL syntax |
Buyruqda imlo xatosi | Buyruqni diqqat bilan qayta tering (13-masaladagi kabi) |
Public Key Retrieval is not allowed |
DBeaver + MySQL 8 | Driver properties'da allowPublicKeyRetrieval = TRUE |
2-bob masalalari¶
- MySQL'ni o'z kompyuteringizga o'rnating (Laragon yoki boshqa usul)
- Terminal orqali ulanib,
mysql>promptini ko'ring - DBeaver (yoki HeidiSQL) o'rnatib, ulanish yarating
SHOW DATABASES;buyrug'ini bajaring β nechta baza bor?SELECT VERSION();β versiyangiz qaysi?SELECT NOW();β natijani yozib olingSELECT 7 * 8;bajaringSELECT 100 / 3;β natija qanday chiqdi? Kasr qismiga e'tibor beringselect now();β kichik harflarda yozing. Ishladimi? Xulosa qilingSELECT NOW()β nuqta-vergulsiz yozing. Nima bo'ldi? (terminal kutib turadi β;terib Enter bosing)SELECT 'Salom, SQL!';bajaring β matn qanday chiqdi?SELECT 'Mening ismim', 'Aziz';β ikki ustunli natija oling- Ataylab xato yozing:
SELEC NOW();β xato xabarini o'qing va tushuning SELECT 10 % 3;β%nima qilarkan? (qoldiq)SELECT (5 + 3) * 2;β qavslar ishlaydimi?SHOW WARNINGS;buyrug'ini sinab ko'ringSELECT DATABASE();β natija nega NULL? O'ylang (hali hech qaysi bazani tanlamadik)- Terminal'dan chiqing:
exityokiquit. Qayta kiring - DBeaver'da SQL Editor oching (Ctrl+]) va
SELECT NOW();ni shu yerdan bajaring SELECT USER();β qaysi foydalanuvchi sifatida ulangansiz?