Dobrodošli na wiki srpske Slackware zajednice. Za izmenu sadržaja je neophodno registrovati nalog. Pre uređivanja ili dodavanja sadržaja poigrajte se sa wiki sintaksom u igralištu.

Prvo proverite da li postoji korisnik mysql i da li je član grupe mysql
id mysql

Izlaz bi trebalo da bude ovakav:

uid=27(mysql) gid=27(mysql) groups=27(mysql)

U zavisnosti od izlaza, možda ćete morati da kreirate korisnika, grupu ili dodati postojećeg korisnika u postojeću grupu. To je tematika za neko drugo uputstvo, tako da se time nećemo baviti ovde. Na Slaku 13.37, ovo je već podešeno.

Proverite dozvole nad direktorijumima ///var/lib/mysql// i ///var/run/mysql//:
ls -ld /var/lib/mysql /var/run/mysql

Vlasnik direktorijuma bi trebalo da bude korisnik mysql, a grupa mysql:

drwxr-x--- 4 mysql mysql 4096 Feb  1 20:27 /var/lib/mysql
drwxr-xr-x 2 mysql mysql 4096 Feb  2 06:18 /var/run/mysql

Ako nije, promenite vlasnika i grupu. U Slaku 13.37, ovo je već podešeno. Ako vam zatreba pomoć, pogledajte uputstvo za chown:

man chown
U sledećem koraku potrebno je kreirati konfiguracionu datoteku. U /etc se nalazi nekoliko primera:
  • my-huge.cnf
  • my-large.cnf
  • my-medium.cnf
  • my-small.cnf

Ovi primeri predstavljaju konfiguracije za različite veličine sajtova:

  • my-small.cnf - mali sajt, deljeni server na kome je pokrenut mysql server (< 64MB RAM)
  • my-medium.cnf - srednji sajt, deljeni server na kome je pokrenut mysql server (> 64MB RAM)
  • my-large.cnf - veliki sajt, većim delom posvećen mysql server (~512MB RAM)
  • my-huge.cnf - veliki sajt, u potpunosti posvećen mysql server (1-2GB RAM)

U većini slučajeva dovoljno je samo napraviti simbolički link my.cnf koji pokazuje na jedan od primera.

Konfiguraciona datoteka my.cnf je globalna, ali mogu postojati i dodatne konfiguracione datoteke:

  • /var/lib/mysql/my.cnf - za podešavanje serverski specifičnih opcija
  • ~/my.cnf - za korisnička prilagođavanja

Ove datoteke se ne kreiraju u podrazumevanoj instalaciji.

Za lokalni test server možete slobodno izabrati my-small.cnf.

Nakon toga je potrebno instalirati početnu bazu podataka

Ovo ćemo obaviti komandom mysql_install_db:

mysql_install_db --user=mysql

Opcija “–user“ je neophodna. U suprotnom, baza će biti instalirana kao root korisnik i kreirati probleme pri pokretanju servera (server će odbijati da se pokrene). Ovo se može rešiti deinstalacijom mysql paketa, zatim brisanjem svih u međuvremenu kreiranih datoteka i novom instalacijom.

Nakon toga je neophodno postaviti lozinku za root korisnika

Da bismo to uradili prvo moramo da pokrenemo mysql server:

sh /etc/rc.d/rc.mysqld start

Nakon toga je preporučeno pokrenuti komandu:

mysql_secure_installation

Ova komanda će postaviti sigurnija podešavanja od podrazumevanih. Pomoću ove komande možete i postaviti root lozinku.

Ako vam podrazumevana podešavanja odgovaraju (napr, lokalni test server bez izlaza na internet), umesto ovog koraka možete direktno postaviti root lozinku:

mysqladmin -u root password 'lozinka'

Za one koji se prvi put susreću sa mysql, ova root lozinka NIJE ista stvar kao i lozinka root korisničkog naloga!

Da biste testirali instalaciju, pokrenite mysql klijent
mysql -u root -p

Kada budete upitani za lozinku, upišite gore izabranu lozinku. Ukoliko je konekcija uspešno postignuta, sada možete ukucati SQL komande. Recimo:

show databases;

Izlaz bi trebalo da izgleda slično ovome:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)

SQL komande se obično navode velikim slovima, ali ukoliko upišete komandu i malim slovima, upit će biti uspešno izvršen.

Sledeći korak je kreiranje korisnika i postavljanje dozvola

Ovaj korak možete preskočiti ako ste početnik koji se ,,igra“ na lokalnoj test mašini. U svakoj drugoj situaciji je preporučeno da kreirate pojedinačnog korisnika za svaki sajt hostovan na serveru koji bi trebalo da ima pristup MySQL bazi.

Novog korisnika možete kreirati uz pomoć komandi CREATE USER ili GRANT. CREATE USER kreira novog korisnika, ali ne postavlja dozvole. GRANT postavlja dozvole, a ako korisnik ne postoji, naknadno ga kreira. Dozvole za korisnika kreiranog sa CREATE USER ćete morati naknadno navesti korišćenjem GRANT.

Dozvole se specifikuju navođenjem naredbi kojima korisnik ima pristup (napr: INSERT, SELECT, UPDATE, DELETE, itd…). Za spisak dozvola (privilegija) koje su dostupne u MySQL-u pogledajte link.

Primer upotrebe CREATE USER i GRANT:

create user 'bocke'@'localhost' identified by 'lozinka';
grant insert,update,delete,select on baza.* to 'bocke'@'localhost';

U ovom primeru, korisniku bocke su date insert, update, delete i select privilegije nad svim tabelama u bazi „baza“. Takođe je moguće postaviti dozvole za pojedinačne tabele ili više baza istovremeno.

Za uklanjanje privilegija koristi se SQL naredba REVOKE. Primer:

revoke insert on baza.* from 'bocke'@'localhost';

Da biste pogledali privilegije korisnika koristite naredbu SHOW GRANTS:

show grants for 'bocke'@'localhost';

Korisniku možete postaviti ili promeniti lozinku korišćenjem naredbe SET PASSWORD:

set password for 'bocke'@'localhost' = PASSWORD('lozinka');

Upravljanje korisničkim nalozima je takođe moguće direktnom manipulacijom grant tabela. Za više informacija možete pogledati MySQL korisničko uputstvo ili odgovarajuće strane navedene kao literatura na dnu ovog članka. Izabrao sam da to ovom prilikom ne obradim.

Možete postaviti da se MySQL server automatski pokrene pri pokretanju računara
chmod +x /etc/rc.d/rc.mysqld

ili ga pokretati i zaustavljati ručno po potrebi (recimo za testiranje web aplikacija ili web razvoj):

sh /etc/rc.d/rc.mysqld start

odnosno za zaustavljanje:

sh /etc/rc.d/rc.mysqld stop
Par dodatnih napomena
  • Jedna od čestih grešaka je zaboravljanje tačke-zareza (;) na kraju SQL komandi. U ovom slučaju MySQL će prebaciti upis komande u novi red, sve dok se ne otkuca tačka-zarez.
  • Za starije Slak verzije je moguće da će biti potrebno i neko dodatno podešavanje. Jedan deo toga je samo pomenut u početku ovog uputstva.
  • Za spisak alata za održavanje i administraciju MySQL-a, pogledajte odeljak zvaničnog uputstva.

Literatura


QR Code
QR Code saveti:mysql_-_osnovna_podesavanja (generated for current page)