Instalacija, pokretanje i povezivanje MySQL-a (Windows, macOS i Linux)
MySQL je relaciona baza podataka i jedna od najčešće korišćenih baza u praksi — obavezna je na intervjuima, bilo za apsolvente ili iskusne programere, i prožima mnogo ispitnih pitanja; spada u ono što Erge uvek ističe kao jednu od „četiri stuba Java backend-a".
Put učenja MySQL-a pogledajte ovde: Četiri faze učenja MySQL-a
Studentima preporučujem da bar do druge polovine prve godine završe učenje MySQL-a, jer će vam kasnije, pri izradi projekata, MySQL sigurno trebati za CRUD operacije. Za zaposlene programere to ne treba ni posebno napominjati — gotovo svakodnevni razvoj se oslanja na MySQL; ko ne vlada MySQL-om nije pravi backend programer (😂).
Dakle, da bismo dobro naučili MySQL, prvo ga treba instalirati lokalno — uglavnom na Windows i macOS platformama, dok je na serverima (produkcionom okruženju) to obično Linux operativni sistem.
Sve ćemo to proći u nastavku — samo strpite još malo.
Instalacija MySQL-a
Sa stanovišta oblasti primene, MySQL se deli na četiri verzije:
- MySQL Community Server (community izdanje) — ovo izdanje uglavnom koristimo (besplatno je, može se koristiti bez naplate 😁).
- MySQL Enterprise Edition (enterprise izdanje) — zahteva naplatu, uglavnom ga koriste velika preduzeća.
- MySQL Cluster (cluster izdanje) — za postavljanje MySQL klastera, takođe uglavnom u velikim preduzećima; malim firmama je sasvim dovoljan jedan standalone MySQL.
- MySQL Cluster CGE (Carrier Grade Edition) — napredna verzija MySQL Clustera, pruža dodatnu stabilnost i performanse. Nije u našem fokus.
Sa stanovišta razvojne istorije MySQL-a, trenutno je aktuelna verzija MySQL 8.0 — projekat Jishupai koristi upravo MySQL 8.0 i ne podržava MySQL 5.7 (ranije aktuelnu verziju, čiji je životni ciklus završen 31. oktobra 2023).
MySQL 8.0 donosi mnogo značajnih unapređenja, uključujući:
- Podrazumevani utf8mb4 karakter-set, sa podrškom za emoji znakove.
- Unapređenja u InnoDB-u — na primer, kolone sa auto-increment sada podržavaju automatsko popunjavanje (auto_increment), čime se otklanja stari problem da se nakon restarta instance vrednosti auto-increment kolone ne nastavljaju neprekidno.
- Bolje performanse — 8.0 u odnosu na 5.7 pri visokoj konkurentnosti postiže skoro dvostruko bolje performanse.
- Još novih osobina potražite u ovom članku.
U nastavku instalacije zademo se na MySQL 8.0 kao primer.
Windows platforma
Idite direktno na zvanični sajt MySQL-a da preuzmete instalaciju.
https://dev.mysql.com/downloads/mysql/
Ili jednostavno u pretraživaču ukucajte ključnu reč „MySQL preuzimanje" i skočite na zvanični sajt.

Sajt će na osnovu vašeg operativnog sistema automatski ponuditi odgovarajuću verziju, kao na slici ispod. Početnici mogu samo da preuzmu MSI instalacioni paket.

MSI, Microsoft Installer — format datoteke za instalaciju, održavanje i uklanjanje softvera na Windows operativnom sistemu.
Kada se pojavi sledeći ekran, samo izaberite „no thanks, just start my download".

Nakon preuzimanja, dvokliknite da pokrenete instalaciju (navodiću samo ključne korake).
Kada se pojavi ovaj korak, izaberite podrazumevani Developer Default režim (instaliraće MySQL Server „neophodan", MySQL Shell „rad u komandnoj liniji", MySQL Connectors „podršku komunikaciji između programskih jezika i MySQL-a" itd.).

Arhitektura MySQL-a je C/S arhitektura, odnosno klijent/server — klijent šalje SQL komande, server ih raščlanjuje i izvršava, a zatim rezultat vraća klijentu.
Ostale opcije neću posebno objašnjavati — ako vam je jasno, birajte sami; ako nije, ostavite podrazumevano (😂).
Na ekranu „High Availability" izaberite „Standalone MySQL Server / Classic MySQL Replication" — znači da želimo da MySQL radi kao samostalni server.

Na ekranu „Type and Networking" izaberite „Development Computer" — razvojni računar, sa minimalnim zauzećem resursa.

U odeljku „Connectivity", ako je port 3306 zauzet, možete ga promeniti, ali to se ne preporučuje — bolje ostaviti podrazumevanu vrednost.

MySQL 8.0 može da koristi jake lozinke; za lokalni razvoj slobodno izaberite bilo koju opciju.

Tokom instalacije bićete pozvani da unesete lozinku za root korisnika — obavezno zapamtite ovu lozinku, kasnije će vam trebati.

Na ekranu „Windows Service" možete štiklirati polje da se MySQL pokreće kao Windows servis, zatim navesti ime servisa (MySQL se pokreće pri paljenju računara) i podesiti ga da radi pod standardnim sistemskim nalogom.

Tako nastavite do finish-a; ostale konfiguracije, ako vam nisu jasne, pogledajte u članku: Instalacija MySQL-a na Windows
macOS platforma
MySQL se može instalirati pomoću Homebrew, ali da bismo paralelno pratili način instalacije sa Windows-om, ovde ćemo i dalje koristiti preuzimanje instalacionog paketa sa zvaničnog sajta.
https://dev.mysql.com/downloads/mysql/
Prema tome da li je vaš macOS na Intel ili M1 čipu, izaberite odgovarajuću verziju.

Moja mašina je trenutno Intel verzija, pa biram 64-bitnu verziju za x86 arhitekturu; najnoviji Apple čipovi koriste ARM arhitekturu — napredni skup pojednostavljenih instrukcija. Zainteresovani mogu pogledati na Wikipediji.
Možete i direktno pokrenuti komandu uname -m da proverite na kojoj arhitekturi radi vaš macOS.

Način instalacije preko instalacionog paketa je gotovo identičan kao na Windows-u, pa neću ponavljati.
Nakon instalacije, u System Preferences pojaviće se ikona MySQL servisa, kao na slici ispod.

Ako instalirate preko Homebrew, možete pitati Warp AI — ranije sam toplo preporučivao ovaj terminalski alat.

Linux platforma
Linux platforma se uglavnom deli na CentOS i Ubuntu:
- CentOS (Community ENTerprise Operating System) je besplona klon Red Hat Enterprise Linux-a (RHEL); kao alat za upravljanje paketima koristi YUM (Yellowdog Updater Modified).
- Ubuntu je Linux distribucija zasnovana na Debianu; kao alat za upravljanje paketima koristi APT (Advanced Packaging Tool).
Ko ne poznaje ove koncepte može sam da se upozna — ovde ih nećemo posebno objašnjavati.
Komandom cat /etc/os-release možete proveriti svoju verziju Linux-a. Erge trenutno ima dva servera — jedan na Tencent Cloud, jedan na Alibaba Cloud; TencentOS je potpuno kompatibilan sa CentOS-om, dok je onaj na Alibaba Cloud-u Ubuntu.

CentOS
CentOS može da koristi komandu yum za instalaciju MySQL-a.
# Instalaciona komanda
yum install mysql mysql-server mysql-libs
# Traženje početne lozinke
grep "temporary password" /var/log/mysqld.log
## Izlaz je sledeći
# A temporary password is generated for root@localhost: xxxxUbuntu
Ubuntu može da koristi komandu apt-get za instalaciju MySQL-a.
# Instalaciona komanda
sudo apt-get install mysql-server mysql-client -y
# Obratite pažnju na podešavanje početne lozinke tokom instalacije (ako nije ponuđeno, početnu lozinku možete naći na sledeći način)
grep "temporary password" /var/log/mysqld.log
## Izlaz je sledeći
# A temporary password is generated for root@localhost: xxxxNakon instalacije, komandama set password ili update user možete izmeniti lozinku za prijavu na MySQL.
Na primer, ako želim da lozinku root korisnika promenim u 123, mogu to uraditi sledećom komandom.
set password for root@localhost = password('123');Ili
use mysql;
update user set password=password('123') where user='root' and host='localhost';
flush privileges;Tačno značenje ovih SQL komandi obradićemo kasnije — ovde ih samo ukratko pominjemo.
Pokretanje i zaustavljanje MySQL-a
Nakon instalacije MySQL-a na Windows i macOS platformama, pokretanje ili zaustavljanje servisa možete obaviti direktno u sistemskim servisima / System Preferences.
Na primer, za macOS:

Na Linux-u se to uglavnom radi preko komandi, na primer:
# Pokretanje
sudo service mysql start
# ili sudo service mysqld start
# Zaustavljanje
sudo service mysql stop
# Restart
sudo service mysql restartsudo (skraćenica od „superuser do") je Linux komanda kojom se komanda izvršava sa root privilegijama.
Povezivanje na MySQL
Povezivanje na MySQL se uglavnom vrši na dva načina:
- putem komandne linije — ugrađeno u MySQL
- grafičkim klijentima — na primer Workbench, Navicat (Windows verzija, macOS verzija), DataGrip itd.
Povezivanje preko komandne linije
Ako je MySQL već dodat u sistemske environment varijable, možete direktno u komandnoj liniji ukucati mysql -u root -p da se povežete na MySQL.

Ako nije dodat u sistemske environment varijable, na Windows-u u instalacionom direktorijumu MySQL-a, u direktorijumu bin, možete pronaći datoteku mysql.exe, dok na macOS-u datoteku mysql možete pronaći u direktorijumu /usr/local/mysql/bin.
Kao primer uzmimo Windows — otvorite cmd prozor i navigirajte do direktorijuma bin.
cd C:\Program Files\MySQL\MySQL Server 8.0\binZatim unesite komandu mysql -uroot -p da se povežete na MySQL. Nakon toga unesite lozinku i pristupićete MySQL servisu.
Ako ste na macOS instalirali MySQL preko instalacionog paketa, instalacioni direktorijum je obično /usr/local/mysql; komandom cd /usr/local/mysql/bin uđite u direktorijum bin, a zatim unesite komandu ./mysql -uroot -p da se povežete na MySQL.

U komandi ./mysql -uroot -p, oznaka ./ označava trenutni direktorijum; komandom ./mysql umesto mysql...
Prilikom korišćenja komande ./mysql -uroot -p, ./ ispred označava trenutni direktorijum. Navođenjem ./, terminalu jasno stavljate do znanja da komandu mysql potraži i izvrši u trenutnom direktorijumu.
Podrazumevano, terminal traži izvršne datoteke u sistemskoj PATH environment varijabli. Pošto smo MySQL instalirali preko instalacionog paketa, a ne preko Homebrew, trenutni direktorijum (.) nije obuhvaćen PATH varijablom. To znači da ako direktno ukucate mysql -uroot -p, terminal neće moći da pronađe komandu mysql.
Korišćenjem ./mysql zaobilazite to PATH ograničenje i direktno navodite izvršnu datoteku mysql u trenutnom direktorijumu. Tako terminal uspeva da je pronađe i izvrši.
-u označava korisničko ime, a -p lozinku; ako je lozinka prazna, možete direktno ukucati komandu mysql -uroot da se povežete na MySQL.
Grafičko povezivanje
Lično koristim Navicat; putem linka možete pronaći instalacioni paket, a nakon instalacije napravite novu konekciju.

Zatim možete pregledati odgovarajuće baze i tabele.

Kratak rezime
Ovaj članak je detaljno opisao instalaciju i povezivanje na MySQL na Windows, macOS i Linux platformama — time smo pripremili teren za nastavak „Ergeov napredni put kroz MySQL)". Sretno.
