Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
315,33 KB
Nội dung
Chng 3: H qun tr c s d liu MySQL 36 3.3. S dng MySQL 3.3.1. Lnh mysql ây là lnh thâm nhp trình qun lý c s d liu và a ra các nh qun tr khác . Cú pháp mysql u username p password databasename Ví d Truy xut c s d liu packet voi username la “pac” va password la “ket”. $ mysql –I pac –p ket packet 3.3.2. Lnh mysqladmin Là công c chính ca ngi qun tr c s d liu vi 2 tham s -u,- p . Vi mysqladmin có mt s lnh qun tr sau • create databasename : to csdl • drop database name :xóa c s d liu • password newpassword : i mt khu • status: thông tin v trng thái hin hành ca trình ch • version cho bit thông tin v phiên bn ca trình ch my sql 3.3.3. Lnh mysqlshow Lnh này cho bit thông tin v database. Nu không có tham s s hin th toàn b database, ngc i nu có tham s là tên database thì hin th tt c các bng trong database. u tham s là tên database và tên bng thì toàn b tên các ct trong bng sc hin th u tham s là tên database,tên bng,tên ct thì thông tin ca ct s c lit kê. Chng 3: H qun tr c s d liu MySQL 37 3.3.4. Lnh grant p quyn cho ngi dùng database Cú pháp : grant privilege on object to user[user-password] [opt] • privilege là quyn cp cho tài khon ngi dùng bao gm: § Alter : quyn thay i bng và file ch mc § Creat : quyn to bng vàdatabase § Delete : quyn xoá d liu trong database § Drop : quyn xoá database § Index : quyn qun lý ch mc index § Insert : quyn chèn d liu mi vào § Select : quyn xem d liu § Update : quyn cp nht d liu § All : tt c các quyn • Object : databasename.table Có th dùng databasename.* s tác ng n mi bng trên databasename. u ý: mysql cho phép cp quyn trên database cha có cho mt ngi dùng sau này s to • User : username.host Ví d rick@”%” • Password : nu grant ta mi user ta t password bng cách thêm identyfied by password • Ví d : to mi user khtn vi password cntt toàn quyn trên database tên packet(packet có th cha có) mysql>grant all on packet.* to khtn@”%” indentified by cntt Chng 3: H qun tr c s d liu MySQL 38 3.3.5. Lnh Revoke Lnh này dùng c quyn ngi dùng Cú pháp: revoke privilege on object from user 3.3.6. Ví d v to mt c s d liu o c s d liu packet vi username là khtn và password la cntt : $mysql>grant all on packet.* to khtn@ identified by cntt; nh trên c thc hin vi t cách qun tr root ca MySQL. (Thoát v du nhc lnh $mysql>quit ) Ri gõ tip các lnh sau: $mysql u khtn p cntt $ mysql>create database packet; $mysql>use packet (s dng database tên packet) Bây gi mi truy vn sql u lác ng lên database packet. 3.4. Lp trình MySQL trên ngôn ng C Mt s hàm thng dùng khi lp trình vi MySQL 4.4.1 mysql_init Khi to cu trúc x lý kt ni Cú pháp : MYSQL *mysql_init (MYSQL *old_connect) Tham s: • old_connect =NULL :to kt ni mi • old_connect khác NULL :tái kt ni vi con tr old_connect Chng 3: H qun tr c s d liu MySQL 39 3.4.2 mysql_real_connection Thc hin kt ni vt lý n máy ch ni Mysql sever ang chy Cú pháp : MYSQL *mysql_real_connect(MYSQL *connection , const char* server_host, const char * sql_username, const char *sql_pass, const char* db_name, unsigned port_num ,const char * unit_socket_name , unsigned int flag ) Tham s : • Connection : trn cu trúc MYSQL c khi to bi hàm mysqlconnect. • Server_host : a ch IP ca máy ch ni dch vu mysql server ang chy. • sql_username,sql_pass : là i s chng thc quyn ng nhp h thng • db_name : tên ca database • port_num : s hiu cng mysql dùng (mc nh bng 0) • unit_socket_name kiu socket (mc nh NULL) • flag: kiu giao thc s kt ni Chng 3: H qun tr c s d liu MySQL 40 3.4.3 mysql_query Thc thi câu lnh sql query. Cú pháp: int mysql_query(MYSQL *connect,const char* query) Tham s: • query : câu lnh sql cn thc hin Kt qu tr v • Bng 0 nu thc thi thành công • Bng 1 nu tht bi 3.4.4. mysql_affected_rows Cho bit s dòng bnh hng sau lnh query Cú pháp : my_ulonglong mysql_affected_rows(MYSQL *connection) Khi s dng hàm này phi ép kiu giá tr tr v là unsigned long 3.4.5. mysql_store_result y giá tr tr v sau khi gi hàm mysql_query a vào cu trúc MYSQL_RES Cú pháp : MYSQL_RES *mysql_store_result(MYSQL -*connection) 3.4.6. mysql_fetch_row y ra mt dònh d liu t MYSQL_RES . Bn cng có th di chuyn n 1 dòng d liu bt kì nh hai hàm mysql_row_seek và mysql_row_tell. Cú pháp : MYSQL_ROW mysql_fetch_row(MYSQL_RES *result) Chng 3: H qun tr c s d liu MySQL 41 3.4.7. mysql_row_seek Di chuyn n v trí offset và tr v v trí con tr trc ó Cú pháp : MYSQL_ROW_OFFSET myql_row_seek( MYSQL_RES *result MYSQL_ROW_OFFSET offset) 3.4.8. mysql_free_result Gii phóng tài nguyên. Cú pháp: void mysql_free_result (MYSQL_RES *result) Chng 4: Lp trình socket 42 Chng 4: Lp trình socket 4.1. Gii thiu v lp trình socket Khi vit ng ng và có nhu cu tng tác vi mt ng ng khác, chúng ta thng da vào mô hình khách/ ch (client/server). Theo mô hình này, ng ng có kh ng phc hoc cung cp nhng thông tin gì ó gi là ng ng ch (trình ch hay server). ng ng gi yêu cu n trình ch c i là ng ng khách (trình khách hay client). M rng hn na, server có th là mt máy tính vi cu hình nh còn client là rt nhiu máy con khác ni vào máy ch. Nh vy, trc khi yêu cu mt ch ca trình ch thc hin iu gì ó, trình khách (client) phi có kh ng kt ni c vi trình ch. Quá trình kt ni này c thc hin thông qua mt c ch tru tng hóa i là socket (m ch là “c ch cm”). Kt ni gia trình khách và trình ch ng t nh vic cm phích in vào cm in. Trình khách thng c coi nh phích cm in, còn trình ch c coi nh cm in, mt cm có th cm vào ó nhiu phích in khác nhau ng nh mt máy ch có th kt ni và phc cho rt nhiu máy khách. Nu kt ni thành công thì trình khách và trình ch có th trao i d liu vi nhau, thc hin các yêu cu v trao i d liu. 4.2. Nguyên lý hot ng a socket u tiên server m mt cm socket. ây ch là quá trình h iu hành phân b tài nguyên chun kt ni. Dùng hàm socket() to “ cm” cho trình ch server. Tip n, ng ng khách bit n cm socket a trình ch, n phi t cho server ch mt cái tên. Nu trên máy c b và da vào h thng file a UNIX hay Linux, n có th t tên cho socket nh là mt tên file Chng 4: Lp trình socket 43 (vi y ng dn). n ch cn t tên còn ng dn thng t trong th c /tmp hay /usr/tmp. i vi giao tip ng thông qua giao thc TCP/IP tên a socket c thay th bng khái nim cng (port). Cng là mt s nguyên 2 bytes (khong 65000 cng n có th chn t cho socket) thay th cho tên tp tin. Nu trình khách và trình ch nm trên hai máy khách nhau, giao thc TCP/IP còn yêu cu xác nh thêm a ch IP kt ni n máy ch xa. Sau khi ã ch nh tên hoc s hiu port cho socket, n i hàm bind() ràng buc hay t tên chính thc cho socket a trình ch. Tip n là ch kt ni t phía trình khách, trình ch s gi hàm listen() to hàng i nhn các kt ni do trình khách a n. Nu có yêu cu kt ni t phía trình khách, trình ch gi hàm accept() tip nhn yêu cu a trình khách. accept() to mt socket vô danh khác (unnamed socket), cm kt ni a trình khách vào socket vô danh này và thc hin quá trình chuyn d liu trao i gia khách ch. Socket c t tên trc ó vn tip c hot ng ch nhn yêu cu t trình khách khác. i giao tip c ghi thông qua socket ng n gin nh vic dùng lnh read/write c ghi trên file. Nu file da vào s mô (file descriptor) xác nh socket cn c ghi cho hàm read/write. Phía trình khách ch cm o mt socket vô danh, ch nh tên và v trí socket a trình ch. Yêu cu kt ni bng hàm connect() và c ghi, truy xut d liu a socket bng lnh read/ write hoc lnh send/ recv. Chng 4: Lp trình socket 44 4.3. Lp trình vi socket 4.3.1. Các thuc tính a socket Socket c nh ngha da trên 3 thành phn thuc tính( attribute) ó là: vùng( domain), kiu( type) và giao thc( protocol). Socket còn cn c vào mt a ch kt hp vi nó. a ch này ph thuc vào vùng a socket và thng c i là dòng giao thc (protocol family). Ví d nh dòng giao thc theo h thng file a Sun thng ly tên file làm ng dn a ch, trong khi giao thc TCP/IP i ly a ch IP (32 bits) tham chiu và thc hin kt ni vt lý. 4.3.1.1. Vùng( domain) Vùng dùng xác nh tng ng ni giao tip a Socket din ra. Vùng giao tip Socket thông ng nht hin nay là AF_INET hay gia tip socket theo chun ng Internet. Chun này s dng a ch IP xác nh nút kt ni vt lý trên ng. Ngoài ra, nu n ch cn giao tip c b, n có th dùng vùng giao tip theo chun a Sun AF_UNIX, ó là dùng ng dn và h thng file t tên và xác nh kt ni gia hai hay nhiu ng ng. Chng n nh ví d trên, chúng ta ã thc hin bng cách t tên cho socket là server_socket, và Linux ã to ra file server_socket ngay trên th c hin hành (hay trong th c m /tmp tùy theo phiên n a Linux và UNIX). Tuy nhiên vùng giao tip AF_UNIX li ít c s dng trong thc t. Ngày nay hu ht các ng ng ng s dng socket u theo vùng AF_INET là ch yu. Chúng ta bàn sâu v phân vùng này ngay sau ây. Vùng AF_INET nh ã nêu s dng c ch IP (Internet Protocol) là mt ch ngha s 32 bits xác nh kt ni vt lý. S này thng c vit dng nhòm nh 192.168.1.1, 203.162.42.1 Chng 4: Lp trình socket 45 hay 127.0.0.1 là các a ch IP hp l. a ch IP có th c ánh thành mt tên d nh n nh www.yahoo.com hay www.microsoft.com , chúng c i là tên vùng (domain name). Vic ánh a ch IP thành tên vùng thng do máy ch DNS (Domain Name Server) thc hin. Tuy nhiên, n ng có th t ánh tên vùng ngay trên mày c b bng cách s dng tp tin d liu /etc/hosts. Socket theo dòng giao thc IP s dng port (s hiu cng) t tên cho mt socket. Cng dùng phân bit d liu gi n chuyn cho ng ng nào. n hình dung nu a ch IP dùng xác nh c máy hay ni kt ni vt lý a d liu n thì cng là a ch ph dùng gi chính xác d liu n ni ng ng cn. iu này do trên mt máy có th có nhiu ng ng cùng chy và cùng s dng trùng s cng. Do cng là mt giá tr nguyên 2 bytes nân n có th s dng khong 65000 cng t do t cho socket. Tr các s hiu cng n ting nh FTP, Web ã nêu phn trên n không nên s dng, còn thì bn có th chn s cng ln n 1024 m cho socket a ung ng. M socket theo AF_INET không khác my so vi AF_UNIX ngoài vic t tên và ch nh s hiu cng. Ví d: /* M socket theo kt ni IP */ server_sockfd = socket (AF_INET, SOCK_STREAM, 0); server_address.sin_family = AF_INET; server_address.sin_addr.s_addr = inet_addr(“127.0.0.1”); server_address.sin_port = 1234; [...]... protocol thông ng nh TCP, UDP, ICMP, ARP 2 Cho phép l u tr thông tin b t ch n h qu n tr 3 s d li u c d i ng c s d li u và u tr Cho phép l u tr thông tin b t theo c u trúc file các ph n m m b t gói tin khác i u khi n t xa vi c b t các gói tin, bao g m: • Kh i 4 ng b t gói tin • D ng b t gói tin • L y b l c hi n th i • K t thúc ch ng trình b t gói tin ng 5-1 Xác 62 nh yêu c u a Ethereal ho c Ch ng 5: Phân... quá trình b t gói tin ang th c l y tên là PacketCap ó, m t h th ng phân tán b t gói tin, trích l c và luu tr li u trên m ng c xây d ng kh c ph c ph n nào m trên H th ng cho phép nhà qu n tr s d ng thông tin ngay trong khi b t, tùy ch n v trí l u thông tin và cho phép c u hình t xa vi c filter các gói tin. Các nhà qu n tr m ng c ng có th dùng h thông này làm c s 5 .2. 2 Xác nh yêu c u c tiêu tin, ng này... Phân tích và thi t k PacketCap 5 .2 Phân tích và xác nh yêu c u 5 .2. 1 Phân tích Vi c trao i thông tin trên m ng ngày càng nhi u, nhu c u c a các nhà qu n tr m ng òi h i ngày càng a d ng, c n thi t có m t ch ng trình có th b t gói tin cho phép phân tích, trích l c thông tin ngay trong khi b t (các ph n m m b t gói tin hi n nay không cho phép các nhà qu n tr s d ng thông tin thu th p hi n) ng ng này Trên... m ng a tài là m t xây d ng ng ng phân tán b t các gói cung c p cho qu n tr m ng nh ng thông tin ph c vi c theo dõi và phân tích thông tin ng, d a trên nh ng thông tin cung c p này cho phép qu n tr m ng có th xác toàn b h th ng ng 61 nh c tình tr ng cho c a Ch ng 5: Phân tích và thi t k PacketCap ng ng PacketCap này bao g m các ch c n ng: STT 1 Ch c n ng B t và phân tích c các gói tin a nh ng protocol... socket $ ping localhost PING ( 127 .0.0.1) from 127 .0.0.1 : 56 (84) bytes of data 64 bytes from ( 127 .0.0.1) : icmp_seq=0 ttl =25 5 time=67 usec 64 bytes from ( 127 .0.0.1) : icmp_seq=0 ttl =25 5 time=48 usec 64 bytes from ( 127 .0.0.1) : icmp_seq=0 ttl =25 5 time=51 usec 4.4 S d ng socket trong ng ng minh Ph n l p trình socket này a c s d ng th c hi n vi c trao thông tin gi a thành ph n client và server trong ph... m Ethereal n i b t v i nhi u u i m nh ch y trên nhi u h i u hành, h tr b t gói tin theo nhi u giao th c khác nhau Các ph n m m này có h n ch chung là khi chúng ang b t các gói tin thì chúng ta không th c, phân tích các thông tin b t c, hay nói cách khác khi k t thúc quá trình b t các gói tin r i thì m i phân tích các thông tin này c Nh ng ph n m m này không h tr vi c ghi k t qu vào c s d li u, mà... th ng khó nh , n có th yêu c u socket ti p nh n m t tên g i nh khách thay cho s IP Ch ng n localhost hay my.computer.home thay cho 127 .0.0.1 T p tin v n n /etc/hosts ch a các danh sách chuy n i này Ví d , n có th dùng trình so n th o vi hay gnotepad s a n i dung t p tin này nh sau: 127 .0.0.1 localhost 127 .0.0.1 my.computer.home 20 7.46.131.91 www.microsoft.com Nh n th y, m t nhau ( a ch IP và tên th Th... t tên cho socket Sau khi ã AF_UNIX socket nh a ch , n ch c n c ch chính là t tên cho socket i v i ng d n, còn tên chính là tên t p tin i v i vùng giao th c AF_INET t o a ch chính là s IP còn tên chính là s hi u c ng (sin_port) trong c u trúc sockaddr_in Khi ã gán thông tin y cho socket nc n i hàm bind() thông tin này cho socket ã m ra tr rabgd bu c nh ng c ó #include int byte (int socket,... qui hay datagram) o m hai chi u c óng thành t ng SOCK_STREAM và nh cách chuy n gói d li u theo hai cách nh sau: SOCK_STREAM luôn gi k t n i và b o g i i c chuy n li u, n i nh n ch n ích và nh n y m gói thông tin Sau khi nh n xong d g i thông tin ph n h i cho n i g i và quá trình g i c xác nh n hoàn t t khi nh n c y th ng tin g i nh n c hai phía khách ch Ki u truy n d li socket này trong vùng giao... ho c Ch ng 5: Phân tích và thi t k PacketCap 5.3 Các h ng xây d ng ng ng PacketCap Hi n nay có r t nhi u ph n m m b t gói tin có mã ngu n m nh TCPTrace, TcpDump, WinDump, Ethereal, trong s này thì Ethereal là ph n m m t t nh t Nó h tr r t nhi u protocol, h tr các nh d ng l tr c a các ph n m m b t gói tin khác, tích h p thêm ph n phân tích thông tin b t c Các ph n m m ngu n m này winpcap(tên a phiên u . (Internet Protocol) là mt ch ngha s 32 bits xác nh kt ni vt lý. S này thng c vit dng nhòm nh 1 92. 168.1.1, 20 3.1 62. 42. 1 Chng 4: Lp trình socket 45 hay 127 .0.0.1 là các a ch IP. khu • status: thông tin v trng thái hin hành ca trình ch • version cho bit thông tin v phiên bn ca trình ch my sql 3.3.3. Lnh mysqlshow Lnh này cho bit thông tin v database. Nu. thay th bng khái nim cng (port). Cng là mt s nguyên 2 bytes (khong 65000 cng n có th chn t cho socket) thay th cho tên tp tin. Nu trình khách và trình ch nm trên hai máy khách nhau,