Šta je novo?

MySQL pitanje...

dEXE

Čuven
Učlanjen(a)
22.12.2001
Poruke
1,804
Poena
755
Dakle, instaliran mi je PHPTriad na windows platformi, i sve radi ok, i php, i MySQL, i perl, samo imam jedno pitanje u vezi podesavanja MySQL-a...

Gde se postavljaju parametri, tj. gde se zabelezavaju recimo razliciti user-i i njihovi pasvordi...
Da objasnim,
u razlicitim php skriptovima za,
$server stavljam localhost
$database neko ime baze
a za
$db_user i $db_pass ostavim prazno u navodnicama, to sve radi ok kod mene na hardu,
a kad hocu da stavim negde na serveru, samo stavim user name i password koji mi daje administrator servera...

e, problem je sad, sto imam recimo skript, koji pri konfiguraciji kod mene na kompu trazi da mu unesem neki user name i password (ne daje prazno), i koji sad ja tu user name i password da unesem, i gde se u MySQL-u zabelezavaju podaci i na koji nacin za razlicite usere?
 
Necu se upustati u PHPTriad, jer ga ne poznajem, nego cu samo da navedem par stvari u vezi MySQL-a.

MySQL server moze da opsluzuje vise MySQL baza podataka. Swichovanje izmedju njih se vrsi parametrom kod naredbe CONNECT ili, ako si vec ulogovan ne server, komandom USE. MySQL tako ima svoju malu bazu, u kojoj drzi podatke o "samom sebi", seljacki receno - dakle o serveru. Ta baza se zove 'mysql'. Informacije o userima se drze u ovoj bazi u tabeli 'user'. U tu bazu mozes da se logujes kao root i prvi posao koji treba da uradis po instalaciji MySQL servera je promena root passworda, dakle :

mysql>UPDATE user SET Password=PASSWORD('novi_pass') WHERE user='root';

Zackoljica je u tome sto u mysql mozes da se ulogujes kao root samo sa lokalne masine (localhost), ne i sa remote masine. Znajuci ovo, ocigledno je da samo admin MySQL servera (neko kod provajdera) ima sva prava nad dodelom korisnika i korisnickih prava. Kada se radi sa sajtovima, pretpostavljam da oni, koji dozvoljavaju php/MySQL kombinaciju, dodeljuju tebi kao korisniku bazu i prava pristupa 'gostima-korisnicima' privilegije vezane za tacku pristupa (preko tog tvog URL-a).

Da bi dozvolio novim userima da rade nesto sa bazom, moras da definises sta sme da se radi (SELECT, INSERT, UPDATE, DELETE, itd) i na kojem delu baze - za celu bazu, pojedinu tabelu, itd. Dakle nesto poput ovog (iz sourcea je sve jasno) :

mysql>GRANT SELECT ON *.* TO "%"@eunet.yu;

ovo daje dozvolu za citanje svih tabela korisnicima koji se kace sa euneta :)

mysql>GRANT ALL PRIVILEGES ON *.* TO dEXE@"%" IDENTIFIED BY 'tvoj_pass' WITH GRANT OPTIONS;

dozvoljava useru dEXE da se uloguje sa bilo koje lokacije, koristeci 'tvoj_pass' sifru i pri tome moze da vrsi sve operacije nad bazom. Obrati paznju na koriscenje dzokera -> kod baze npr, mojabaza.* znaci sve tabele u bazi "mojabaza", zatim mojafirma.zaposleni daje prava nad tabelom zaposleni u bazi mojafirma, dok *.* znaci sve tabele u svim bazama. Drugi dzoker "%" se koristi kod lokacija. Za ostale detalje pogledaj neku dokumentaciju za MySQL i obrati paznju da ne koriste svi proizvodjaci totalno ANSI SQL, nego se razlikuju u sintaxi, tacnije Oracle od MS SQL-a od MySQL-a itd.
Nakon onih gorenavedenih komandi bi trebalo da sledi jedno:

mysql>FLUSH PRIVILEGES;

da budemo precizni.
 
hvala na zaista opsirnom odgovoru, sad mi je funkcionisanje samog MySQL jasnije...
Sto se tice samih komandi, i to je ok, samo sto sam nasao jednostavniji nacin za sve to, koristeci MySQL-Front, gde mi je sve lepo predstavljeno graficki, a pri dnu i ispisuje komande koje si ti naveo...
uzgred, dva mala pitanja, koliko sam shvatio root je admin user (pri instalaciji mi daje mogucnost root usera i usera bez ikakvih znakova, znaci prazno), sta bi bilo kada bi izbrisao recimo sve user-e pa i root usera, ili je to nemoguce?
drugo, kako na serveru menadzujem moju MySQL bazu, ako imam njen url, user i password, sto provajder daje, i ako on nema na serveru instaliran recimo PHPMyAdmin... pretpostavljam da mogu sa ovim MySQL-front da se nakacim, ali ako njega nemam, da li je jedini nacin, kacenje na ftp, pa onda kucanje raznih naredbi, kao i neke koje si ti naveo, i da li je to moguce?
Pozdrav.
 
Phu, nikada nisam ni probao da obrisem root user, tako da ne znam da li je moguce ili ne.

Sto se tice odrzavanja baze, valjda zavisi od toga kakav pristup ti provajder daje toj bazi/serveru; telnet ili rlogin ti verovatno nece dati :D Posto se SQL server vodi kao servis, trebalo bi da se pristupa preko klasicne kombinacije IP:port (bese li 3306 defauilt za MySQL ?).
 
lanemi je napisao(la):
znam da je lakshe pitati .. ali probaj www.mysql.com, dokumentacija im je fenomenalno uradjena

u pravu si, prvo se pogleda help i sl. :)
samo trebala mi je ta mala informacija o user-ima, pa reko, ovako cu najbrze da se informisem :)
u svakom slucaju snasao sam se, phpMyAdmin sjajno radi posao (a imao sam stariju verziju, koja nije radila sa userima)...
svima 'fala.....
 
Nazad
Vrh Dno