1 / 23

DWA 2

DWA 2. Lesson 03. MySQL– osnove administracije. MySQL klijent i PhpMyAdmin Izrada baze podataka Rad sa korisnicima Izrada tablica Izrada indeksa Backup i Restore baze ili tablica. 1. MySQL klijent. MySQL klijentu pristupamo nakon spajanja putem SSH

seda
Download Presentation

DWA 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DWA 2 Lesson 03

  2. MySQL– osnove administracije • MySQL klijent i PhpMyAdmin • Izrada baze podataka • Rad sa korisnicima • Izrada tablica • Izrada indeksa • Backup i Restore baze ili tablica

  3. 1. MySQL klijent • MySQL klijentu pristupamo nakon spajanja putem SSH • Moramo imati korisničko ime i zaporku • Obično je dozvoljeno spajanje samo na jednu (vašu) bazu podataka • U shell-u pišemo: $ mysql –u ijugo –p <enter> Enter password: unijeti pass i <enter> mysql> ... ako vidimo ovakav prompt prijava uspješna

  4. 1. MySQL klijent • u MySQL klijentu možemo koristiti ugrađene naredbe MySQL servera za preglede i opise sadržaja, te SQL naredbe za kreiranje i manipulaciju podacima • Spor proces, svaka greška znači ponovni upit svih naredbi • Ponekad jedini mogući pristup bazi • Najbolji i najbrži način izrade i vraćanja sigurnosnih kopija

  5. Vježba • Logirajte se na senior • Prijavite se na mysql • Mysql –u studenti –p <enter> dwa2 <enter> • show databases; • use pzi2; • show tables; • describe books; • select * from books;

  6. 1. PhpMyAdmin • Potrebna prijava – isti podaci kao za MySQL klijent • Open source web aplikacija pisana u PHP • Grafičko sučelje za MySQL • Omogućava puno brži rad • Nije pogodna za manipulaciju velikih količina podataka (timeout PHP skripte!)

  7. Vježba • http://senior/zap/ • prijavite se korištenjem svog korisničkog imena • odaberite bazu podataka • pregledajte tablice • struktura, podaci, operacije,....

  8. 2. Izrada baze podataka • CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name • Ukratko: CREATE DATABASE ime_baze; • Pregled: SHOW DATABASES; • Brisanje: DROP DATABASE ime_baze;

  9. Vježba • napravite svoju bazu podataka dwa2_korisnickoIme koristeći se phpMyAdmin-om • izbrišite tu bazu podataka koristeći se mysql klijentom • ponovite obrnutim redoslijedom

  10. 3. Rad sa korisnicima • MySQL ima kompleksan sustav za definiranje privilegija svakog korisnika • Moguće je definirati pristup od razine baze, tablica u bazi, pa čak i stupaca (atributa) tablice • Osnovni princip administracije korisnika (ne samo kod baza, već kod svake administracije poslužitelja) je: • PRINCIPLE OF LEAST PRIVILEGE • Korisniku dajemo najmanji mogući skup privilegija koji zadovoljava njegove potrebe

  11. 3. Rad sa korisnicima • Stvaranje korisnika i davanje privilegija: • GRANT select,insert,update,delete ON ime_baze.* TO username IDENTIFIED BY ‘password’; • Obavezno osvježiti popis privilegija • FLUSH PRIVILEGES; • Dokumentacija: • http://dev.mysql.com/doc/refman/5.1/en/grant.html • Oduzimanje prava korisniku: • REVOKE delete ON ijugo.* FROM ijugo; • FLUSH PRIVILEGES;

  12. Vježba • Napravite korisnika (vaše korisnicko ime) koji ima pravo čitanja na vašoj bazi • Osvježite tablice privilegija • Probajte se spojiti kao taj korisnik • Dodajte sva prava na vašoj bazi tom korisniku • Osvježite tablice privilegija

  13. 4. Izrada tablica • Dokumentacija: • http://dev.mysql.com/doc/refman/5.1/en/create-table.html • Primjer create table customers ( customerid int unsigned not null auto_increment primary key, name char(50) not null, address char(100) not null, city char(30) not null) ; • Brisanje tablice: • DROP TABLE customers;

  14. Vježba • Logirajte se kao admin (studenti, dwa2) • Koristite svoju bazu! (use moja_baza;) • Napravite tablicu: create table customers ( customerid int unsigned not null auto_increment primary key, name char(50) not null, address char(100) not null, city char(30) not null) ; • Unesite 1 redak u tu tablicu • INSERT INTO customers(name,address,city) VALUES (‘Igor’,’Omladinska 14’,’Rijeka’); • Izbrišite tablicu (DROP ime_tablice;)

  15. 5. Izrada indeksa • Pravilno indeksiranje osigurava vrlo brzo izvođenja upita i nad velikim skupom podataka • Osnovni indeks svake relacije je njezin primarni ključ – trebala bi ga imati svaka relacija • Moguće je definirati više indeksa nad svakom relacijom (ne više od 3) • Treba ih prilagoditi potrebama web aplikacije

  16. 5. Izrada indeksa • http://dev.mysql.com/doc/refman/5.0/en/create-index.html • CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...) [index_type] index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH | RTREE} • Npr. • CREATE INDEX idx_login ON users(email,pass)

  17. 5. Izrada indeksa • Primjer: • Tablica USERS- primarni ključ je user_id • Naša aplikacija u velikoj većini slučajeva koristi ovu relaciju za prijavu i to usporedbom polja email i pass • Napravimo indeks za to: • CREATE INDEX idx_login ON users(email, pass) • DROP INDEX idx_login

  18. 5. Izrada indeksa • Nedostatak: • Usporava unos i izmjenu podataka (jer svaki unos ili izmjena znači i izmjenu svih indeksa) • U praksi – nikad više od 2-3 indeksa po relaciji • Ako ih treba više – razmisliti o promjeni relacijske sheme

  19. Vježba • dodati potrebne indekse na neke tablice za vježbu • isprobati utjecaj indeksa na primjeru • ukloniti indeks

  20. 6. Backup i restore baze ili tablica • Najvažnije operacije za svakog DBA • Za veću količinu (> 20 MB) se izvode putem MySQL naredbi - inače Export opcija PhpMyAdmin-a • Backup: • mysqldump -u [username] -p [password] [databasename] > [backupfile.sql] • Datoteka će nastati u vašem home direktoriju

  21. 6. Backup i restore baze ili tablica • Backup samo nekih tablica: • mysqldump -u [username] -p [password] [databasename][table1,table2,...] > backupfile.sql • Vrlo brz postupak – cca 4,0 mil. zapisa u 1 minuti

  22. 6. Backup i restore baze ili tablica • Restore baze • mysql -u [username] -p [password] [database_to_restore] < [backupfile] • Ako je backup komprimiran • gunzip < custback.sql.sql.gz | mysql -u [username] -p [password] [database_to_restore]

  23. Vježba • BACKUP • mysqldump -u studenti –pijugo > [ijugo.sql] • BRIŠEMO SADRŽAJ BAZE (NE I BAZU!) • mysql –u studenti –p • use ijugo • DROP TABLE customers; • exit • RESTORE • mysql -u ijugo –pijugo < ijugo.sql

More Related