Mysql-ի գործարկում Linux հրամանի տողից: MySQL հրամանները Linux-ում: Տվյալների բազա և օգտագործողների կառավարում MySQL-ում
Այս հրամանը կսկսի mysql deemon-ը հետին պլանում: Windows 95/98-ը չի նախատեսում mysqld-ը որպես ծառայություն գործարկել: Windows 2000-ում mysql deemon-ն աշխատում է որպես ծառայություն:
Դուք կարող եք գործարկել winmysqladmin.exe, որի դեպքում բոլոր կարգավորումները նշված են my.ini ֆայլում
Mysqld-ը սկսելիս կարող եք նշել հետևյալ տարբերակները.
B, --basedir= |
Ճանապարհ դեպի գրացուցակ, որտեղ տեղադրված է mysql-ը |
Հ, --դատադիր |
Ուղ դեպի գրացուցակ, որտեղ պահվում են տվյալների բազաները |
L, --log= |
Գործարքների գրանցամատյանի անվանումը |
L, --լեզու= |
Լռելյայն լեզու (սովորաբար անգլերեն) |
P, --port= |
Միացման նավահանգիստ |
Բաց թողնել-գրանտ-սեղաններ |
Անտեսեք արտոնությունների աղյուսակները: Դա տալիս է ցանկացածին Ամբողջական մուտքբոլոր սեղաններին: Սովորական օգտատերերին mysqld գործարկելու թույլտվություն մի տվեք |
Skip-name-resolve |
Թույլ է տալիս մուտք գործել միայն այն հոսթներին, որոնց IP հասցեները նշված են արտոնությունների աղյուսակներում: Օգտագործված է ավելին բարձր մակարդակպաշտպանություն |
Բաց թողնել ցանցային կապը |
Օգտագործեք կապեր միայն localhost ինտերֆեյսի միջոցով |
Ցուցադրել տարբերակի մասին տեղեկությունները |
Կարգավիճակի տողում ակտիվ կանաչ գույնով լուսացույցի պատկերակի առկայությունը ցույց է տալիս, որ սերվերը աշխատում է (նկ. 9):
Բրինձ. 9. Winmysqladmin հավելվածն աշխատում է
Եթե կարմիր գույնը ակտիվ է, ապա դուք պետք է գործարկեք սերվերը, ինչպես ցույց է տրված Նկ. 10 սեղմելով պատկերակը մկնիկի աջ կոճակով:
Բրինձ. 10. MySQL Server-ի ակտիվացում
Այժմ կարող եք փորձել մուտք գործել սերվեր: Եթե նախատեսում եք կառավարել սերվերը վահանակի միջոցով, ապա դուք պետք է օգտագործեք հրամանը mysql. Սկզբում կա միայն մեկ օգտվող, ում տրված է մուտքի իրավունք. արմատ, որը չունի գաղտնաբառ։ Առաջին բանը, որ պետք է անել, մուտք գործելն է որպես արմատ,գրանցեք նոր օգտվող և սահմանեք դրա համար գաղտնաբառ: Թիմ mysqlկարող եք օգտագործել հետևյալ տարբերակները.
Նշում. Mysqld և mysql հրամաններն ունեն ևս մի քանի տարբերակներ, բայց in այս պահինդրանք քիչ հետաքրքրություն են ներկայացնում:
DOS նիստից սկսելն իրականացվում է ինչպես ցույց է տրված ստորև (այս դեպքում միացում է կատարվում MySQL տվյալների բազայի հետ - Նկար 11,12):
Բրինձ. 11. MYSQL վահանակի գործարկում
Բրինձ. 12. Վահանակի հաջող գործարկում
Եթե դուք ստանում եք սա, ապա դուք հաջողությամբ մուտք եք գործել mysql վահանակ, որն օգտագործվում է սերվերը կառավարելու համար: Սերվերում առկա տվյալների բազաների ցանկը դիտվում է ՑՈՒՑԱԴՐԵԼ ՏՎՅԱԼՆԵՐԻ ՏՎՅԱԼՆԵՐԻ ՀԱՄԱՐ:
թիմը ՕԳՏԱԳՈՐԾԵԼMySQL; ընտրեք ընթացիկ տվյալների բազան, որտեղ MYSQL-ը տվյալների բազայի անվանումն է:
Mysql-ի միջոցով սերվերին միանալիս սովորաբար անհրաժեշտ է մուտքագրել MySQL օգտանուն և շատ դեպքերում գաղտնաբառ: Եթե սերվերը չի աշխատում այն մեքենայի վրա, որից մուտք եք գործել, դուք պետք է նաև տրամադրեք հոսթի անունը: Միացման պարամետրերը (մասնավորապես, համապատասխան հոսթի անունը, օգտվողի անունը և գաղտնաբառը) կարելի է ձեռք բերել ադմինիստրատորից: Համապատասխան պարամետրերը ստանալուց հետո կարող եք սերվերին միանալ հետևյալ կերպ.
shell> mysql -h host -u օգտվող -p
Մուտքագրեք գաղտնաբառը՝ **********
******** խորհրդանիշները ներկայացնում են ձեր գաղտնաբառը; մուտքագրեք այն, երբ mysql-ը հուշում է Մուտքագրեք գաղտնաբառը. Shell-ը DOS վահանակ է:
Եթե ամեն ինչ աշխատեց, էկրանին պետք է ցուցադրվի տեղեկատվությունը և mysql> հրամանի տողի պիտակը, ինչպես ցույց է տրված Նկար 1-1-ում: 4.
Որոշ MySQL տեղադրություններում հնարավոր է միանալ տեղական հոսթում աշխատող սերվերին՝ առանց օգտվողի անուն (անանուն օգտվող) մուտքագրելու: Եթե ձեր համակարգը կազմաձևված է այս կերպ, կարող եք միանալ սերվերին՝ գործարկելով mysql առանց պարամետրերի.
Կապը հաստատվելուց հետո ցանկացած պահի կարող եք անջատվել սերվերից՝ մուտքագրելով QUIT հրամանը mysql> հրամանի տողում.
Ստորև բերված օրինակների մեծ մասը կառուցված է այն ենթադրությամբ, որ սերվերի հետ կապն արդեն հաստատված է: Դա ակնհայտ է նրանց մեջ առկայությունից հրամանի տող mysql>.
Այս գործողությունները կարող են իրականացվել մասնագիտացված ծրագրերի միջոցով, ինչպիսին է MySQL-Front-ը, որն ունի նաև մեխանիզմ, որն օգտատերերին տալիս է որոշակի իրավունքներ (տես նկ. 13, 14):
Բրինձ. 13. Սկսեք MySQL-front-ը
Բրինձ. 14. Օգտատիրոջ իրավունքների խմբագրում
MySQL տվյալների բազայի սերվերը շատ հաճախ օգտագործվում է դինամիկ վեբ լուծումներ ստեղծելու համար: Պատճառներից մեկը (կամ գուցե հետևանքը) այն է, որ գրեթե բոլոր հյուրընկալողները ներս են մտնում սակագնային պլաններ UNIX հարթակում առաջարկում են մեկ կամ մի քանիսը MySQL տվյալների բազաներ. Եթե դուք օգտվում եք վիրտուալ հոսթինգից, դուք գրեթե կարիք չունեք սերվերի կառավարում սովորելու, պարզապես անհրաժեշտ է ձեր ծրագրերն իրականացնել՝ հետևելով ձեր ընտրած ծրագրավորման լեզվին աջակցող ինտերֆեյսին (PHP-ն ունի ներկառուցված ինտերֆեյս տվյալների շտեմարանին միանալու համար, տարբերակ 5.0 MySQL-ի աջակցությունը տեղափոխվում է առանձին գրադարան լիցենզիայի ներքո): նկատառումներ): Վարչական մյուս բոլոր մտահոգությունները՝ մեկնարկը, դադարեցումը, վերագործարկումը, իրավունքների և օգտատերերի կառավարումը, սերվերի վերապահումը և կարգավորումը, իրականացվում են հոսթինգ մատակարարի ադմինիստրատորների կողմից: Բայց եթե տեղադրեք ձեր սեփական սերվերը կամ VDS (Վիրտուալ Նվիրված սերվեր- վիրտուալ հատուկ սերվեր) դուք ինքներդ ստիպված կլինեք հոգ տանել նրա աշխատանքի բոլոր նրբությունների մասին:MySQL սերվերի կազմաձևումը կարող է իրականացվել երկու եղանակով՝ սերվերը գործարկելու ժամանակ հրամանի տողում ընտրանքներ նշելով և my.ini կազմաձևման ֆայլի միջոցով: Դուք նաև պետք է տարբերակեք կամընտիր պարամետրերը, որոնք կարող են սահմանվել ընթացիկ սերվերի նստաշրջանի համար և կորչում են վերաբեռնման ժամանակ, և շրջակա միջավայրի փոփոխականները, որոնք գործում են գլոբալ ամբողջ սերվերի և բոլոր տվյալների բազաների համար. կարող եք դրանք փոխել միայն ուղղակիորեն նշելով նոր արժեքներ:
Բոլոր հասանելի հրամանների և ընտրանքների ցանկը կարելի է ձեռք բերել վահանակում մուտքագրելով «mysqld --help»: Պետք է ասել, որ գրեթե բոլոր հրամանները ունիվերսալ են և աջակցվում են բոլոր հարթակներում, որտեղ աշխատում է MySQL սերվերը, սակայն կան մի քանի հատուկ հրամաններ Windows NT պլատֆորմի համար։ Բոլոր հրամանների համար կա ամբողջական շարահյուսություն, երբ հրամանը սկսվում է երկու գծիկով (մինուս) «--», որից անմիջապես հետո, առանց բացատների, հրամանի անվանումը (կամ տարբերակները, հետագայում այս բառերը կլինեն հոմանիշներ): Եթե արժեք է պահանջվում, հրամանի անվանը հաջորդում է «=" նշանը և նշվող արժեքը: Կրճատ ձևը նախատեսում է մեկ գծիկ, հրամանի անունը կրճատվում է մեկ տառով, իսկ պարամետրերը նշվում են բացատով: Միայն «--socket» տարբերակը չունի կարճ ձև (այն պետք է լիներ «-s»): Հիշեք, որ հրամանը գրելը մեծատառերի զգայուն է, և «-l» և «-L» հրամանները բոլորովին տարբեր են: Կարող եք մեկնաբանություններ տեղադրել կազմաձևման ֆայլում. դրանք առանձնացված են «#» նշանով, և ամբողջ տողը անտեսվում է մինչև վերջ:
Նախ, եկեք ծանոթանանք ամենակարևոր հրամաններին.
--help հրամանը ամենակարևորն է, այն թվարկում է բոլոր հասանելի հրամանները:
Օգնե՞լ, թե՞ - (սերվերների 4.1 և ավելի բարձր տարբերակում չկա «-h» կարճ հրաման; բացի այդ, հրամանը գործարկելու համար նախ պետք է նշեք «--verbose» հրամանը) - ցուցադրում է օգնություն հասանելի հրամանների և ընտրանքների վերաբերյալ, որը սերվերն ինքն է անում: չսկսել.
--տարբերակ կամ -V - օգտակար է, եթե Ձեզ անհրաժեշտ է իմանալ MySQL սերվերի ճշգրիտ տարբերակը և այն պլատֆորմը, որի վրա այն աշխատում է:
--user= կամ -u - Նշում է օգտվողի անունը, որի իրավունքներով է սկսվում սերվերը: Սովորաբար խորհուրդ չի տրվում սերվերը գործարկել որպես արմատ: Օրինակ՝ «--user=vasya»:
-p - օգտագործվում է «-u» հրամանի հետ և սահմանում է գաղտնաբառը հաշիվօգտագործող. Եթե գաղտնաբառ չկա (կանխադրված տեղադրումը արմատային օգտվողի համար գաղտնաբառ չի տրամադրում), հրամանը կարող է բաց թողնել: Խնդրում ենք նկատի ունենալ, որ հրամանի շարահյուսությունը տարբեր է. գաղտնաբառը դրվում է հրամանից անմիջապես հետո տողում, առանց բաժանարարների: Օրինակ՝ «--user=vasya -pverygoodpassword», որտեղ «verygoodpassword»-ը «vasya» օգտատիրոջ գաղտնաբառը է:
-P կամ --port= Նշում է պորտի համարը, որի միջոցով կապը հաստատվում է mysqld սերվերի հետ: Լռելյայնորեն, սերվերը լսում է TCP 3306 նավահանգիստը, բայց դուք կարող եք սահմանել ցանկացած այլ: Խնդրում ենք նկատի ունենալ, որ հրամանի կրճատ տարբերակը գրված է մեծատառ P-ով, քանի որ p փոքր տառը օգտագործվում է օգտվողի գաղտնաբառը սահմանելու համար:
--bind-address= - օգտագործվում է սերվերի IP հասցեն պարտադրելու համար, լռելյայն վերցվում է ընթացիկ համակարգչի հասցեն:
--skip-networking - հրամանն ամբողջությամբ արգելում է օգտագործումը ցանցային միացումներսերվերին միանալու համար կարող եք աշխատել միայն լոկալ՝ localhost հոսթից։
Հրամանների հաջորդ խումբը նախատեսված է տվյալների բազաների հետ աշխատելու համար:
Ուղարկեք հաղորդագրությունները ռուսերեն - օգտագործեք --language=russian
Datadir= կամ -h թույլ է տալիս հստակորեն նշել այն գրացուցակը, որտեղ պահվում են տվյալների բազաները: Կարող է պահանջվել, եթե ցանկանում եք տվյալների բազաները պահել մեկ այլ բաժանման վրա կամ տրամաբանական շարժիչ, կամ դուք ունեք բազմաթիվ սերվերներ, որոնք օգտագործում են տարբեր գրացուցակներ տվյալների բազաները պահելու համար: Թույլատրելի է սահմանել և՛ ամբողջական, և՛ հարաբերական ճանապարհը։ Օրինակ՝ «mysqld --datadir=\home\vasya\bases»:
--basedir= կամ -b — ուղի դեպի գրացուցակ տեղադրված սերվեր.
--tmpdir= կամ -t-ը ժամանակավոր ֆայլերի գրացուցակի ուղին է:
--character-sets-dir=. Այս տարբերակը սահմանում է ուղին դեպի գրացուցակ, որը պարունակում է տարբեր կոդավորումների կազմաձևման ֆայլեր: Այս տվյալները կարևոր են աղյուսակների լարային դաշտերում ճիշտ տեսակավորման և որոնման համար:
--language= կամ -L - թույլ է տալիս վերացնել հաղորդագրությունների և սխալների ցուցադրման լեզուն: Լռելյայն է Անգլերեն Լեզու, բայց մյուսներին էլ են աջակցում, մասնավորապես՝ ռուս. Ելքային լեզուն սահմանելու համար դուք պետք է նշեք դրա անունը լատինատառ տառերով (ռուսերեն՝ ռուսերեն, անգլերեն՝ անգլերեն): Որպեսզի հրամանն աշխատի, \share\ գրացուցակը պետք է գոյություն ունենա, բայց եթե դրան տանող ուղին տարբերվում է ստանդարտից, ապա լեզուն նշելու փոխարեն պետք է նկարագրել գրացուցակի ամբողջական ուղին, օրինակ՝ «-- language=\user\vasya\mysql\langv\russian»:
--default-character-set= - սահմանում է լռելյայն նիշերի կոդավորումը: Նիշերի հավաքածուի պարամետրի հնարավոր արժեքներից են՝ koi8_ru, german1, cp1251, win1251, koi8_ukr, win1251ukr, win1250 և այլն՝ ընդհանուր առմամբ ավելի քան 20 տարբեր կոդավորումներ: Կոդավորումը կարևոր է, եթե աղյուսակները կպահեն տարբեր լեզուներով տեքստեր, և կարևոր է հաշվի առնել ազգային առանձնահատկությունները տվյալների որոնման և տեսակավորման ժամանակ:
Սրանք ամենակարևոր տարբերակներն ու հրամաններն էին, որոնք ձեզ կարող են անհրաժեշտ լինել սերվերի տեղադրման ժամանակ: Հրամանները շատ են, և դրանց ամբողջական ուսումնասիրության համար օգտագործեք ներկառուցված օգնությունը (զանգել --help հրամանի միջոցով):
Որոշ հրամաններ հատուկ են և հասանելի են միայն Windows NT-ի համար
Windows NT պլատֆորմի համար կան մի քանի հատուկ հրամաններ:
--console - հրամանը հայտնվել է 3.22.4 տարբերակում և նախատեսված է վահանի պատուհանում ցուցադրելու բոլոր սխալ հաղորդագրությունները, ինչը օգտակար է սերվերի վրա տարբեր պարամետրերի էֆեկտը կարգաբերելիս կամ ուսումնասիրելիս:
--install - աշխատում է միայն Win2000/XP հարթակում և գրանցում է MySQL սերվերը որպես համակարգային ծառայություն, որը սկսվում է ամեն անգամ, երբ համակարգը բեռնվում է և մշտապես գոյություն ունի այստեղ պատահական մուտքի հիշողություն(եթե Ձեզ անհրաժեշտ է ծառայություն գրանցել, բայց օգտվողն ինքը կսկսի այն, հրամանը նման կլինի «--insatll-manual»): «--հեռացնել» հրամանը սերվերը հեռացնում է համակարգի ծառայությունների ցանկից:
--standalone - գործարկեք սերվերը Win2000/XP-ի ներքո որպես առանձին ծրագիր, այլ ոչ թե համակարգային ծառայություն:
Լավագույնս օգտագործվում է նշված գործողություններգրաֆիկական օգտակար WinMySQLAdmin, որը ներառված է բաշխման մեջ:
Այն կարող է օգտագործվել նաև բոլոր փոփոխականների և պարամետրերի վերաբերյալ հաշվետվություն ստեղծելու համար, որոնցով գործարկվել է սերվերը, ինչը կարող է օգտակար լինել սերվերը մանրամասն ուսումնասիրելիս և օպտիմիզացնել աշխատանքը: Այլ գրաֆիկական կոմունալ ծառայություններ, ինչպիսիք են MySQL Administrator-ը, թույլ են տալիս ոչ միայն դիտել այս տվյալները, այլև օգտագործել օգտագործողի համար հարմար ինտերֆեյսփոխել դրանք։ Բայց հեռավոր սերվերի դեպքում կամ սահմանափակ ռեսուրսներով, լավագույնն է օգտագործել հրամանի տողի կառավարումը: Բացի այդ, GUIչի վերացնում փոփոխվող տարբերակների նպատակը իմանալու և հասկանալու անհրաժեշտությունը:
Ստորև ներկայացված է ամենաօգտակար և հաճախ օգտագործվող հրամանների ցանկը: MySQLօրինակներով։
mysql տողի սկզբում նշանակում է, որ հրամանը կատարվում է մուտքագրելուց հետո MySQL.
Տողի սկզբում # կամ $ նշանը նշանակում է, որ հրամանը կատարվում է հրամանի տողից։
Սերվերի կարգավիճակը ստուգելու համար MySQLվազել:
Համար FreeBSD:
# ծառայության mysql-սերվերի կարգավիճակ
Վ CentOS/RHEL:
# ծառայության mysqld կարգավիճակ
MySQLվահանակից, եթե սերվերը MySQLնույն հաղորդավարում է՝
Սերվերին միանալու համար MySQLվահանակից, եթե սերվերը MySQLտեղակայված db1.example.com հեռավոր հոսթի վրա.
$ mysql -u օգտվողի անուն -p -h db1.example.com
Տվյալների բազաների, աղյուսակների հետ աշխատանք՝ գրառումների դիտում, ջնջում, խմբագրում։ Վահանակ
Ստեղծել տվյալների բազա MySQLսերվեր:
mysql ստեղծել տվյալների բազա
Ցույց տալ բոլոր տվյալների բազաների ցանկը սերվերի վրա MySQL:
MySQL օգտագործումը;
Ցուցադրել բոլոր աղյուսակները տվյալների բազայում.
mysql ցույց աղյուսակներ;
Դիտեք աղյուսակի ձևաչափը տվյալների բազայում.
mysql նկարագրել;
Ջնջել բազան.
mysql drop database ;
Ջնջել աղյուսակը տվյալների բազայից.
mysql drop աղյուսակ;
Ցուցադրել աղյուսակի բոլոր բովանդակությունը.
MySQL SELECT * FROM;
Ցուցադրել սյունակների և սյունակների բովանդակությունը ընտրված աղյուսակում.
Mysql-ը ցույց է տալիս սյունակներ ից ;
Ցուցադրել տողեր որոշակի աղյուսակում, որը պարունակում է « whatever »-ը.
MySQL SELECT * FROM WHERE = "whatever";
Ցուցադրել բոլոր գրառումները հատուկ աղյուսակում, որը պարունակում է «Բոբ» և հեռախոսահամար «3444444.
Mysql SELECT * FROM WHERE name = " Bob " AND phone_number = " 3444444 ";
Ցուցադրել բոլոր գրառումները ՉԻորը պարունակում է «Բոբ» անունը և «3444444» հեռախոսահամարը՝ տեսակավորված ըստ phone_number դաշտի.
Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;
Ցույց տալ բոլոր գրառումները, որոնք սկսվում են «bob» և հեռախոսահամար«3444444» կոնկրետ աղյուսակում.
Mysql SELECT * FROM WHERE անունը, ինչպիսին է « Bob %» AND phone_number = « 3444444 »;
Ցուցադրել բոլոր գրառումները, որոնք սկսվում են «bob» տառերով և հեռախոսահամարով «3444444»՝ սահմանափակված 1-ից 5-րդ գրառումներով.
Mysql SELECT * FROM WHERE անունը, ինչպիսին է « Bob %» AND phone_number = « 3444444 « limit 1.5;
Օգտագործումը կանոնավոր արտահայտություններ(«REGEXP BINARY») գրառումներ որոնելու համար: Օրինակ, մեծատառերի անզգույշ որոնման համար գտեք A տառով սկսվող բոլոր գրառումները.
Mysql SELECT * FROM WHERE rec RLIKE «^a»;
Ցուցադրել բոլոր եզակի գրառումները.
MySQL SELECT DISTINCT FROM; mysql SELECT , FROM ORDER BY DESC;
Ցույց տալ տողերի քանակը աղյուսակում.
Mysql SELECT COUNT(*) FROM ;
Mysql SELECT SUM(*) FROM ;
Սյունակի հեռացում.
mysql փոփոխել աղյուսակի անկման սյունակը;
Տվյալների բազայում սյունակի ավելացում.
mysql alter table ավելացնել սյունակ varchar(20);
Սյունակի անվան փոփոխություն.
mysql փոփոխել սեղանի փոփոխություն varchar(50);
Ստեղծեք եզակի անունով սյունակ՝ կրկնօրինակ անուններից խուսափելու համար.
mysql alter table add unique();
Սյունակի չափափոխում.
mysql փոփոխել աղյուսակը փոփոխել VARCHAR(3);
Սյունակի հեռացում աղյուսակից.
mysql փոփոխել աղյուսակի անկման ինդեքսը;
Mysql LOAD DATA INFILE " /tmp/filename.csv " replace INTO TABLE FIELDS DERMINATED BY "," LINES DERMINated by "n" (field1,field2,field3);
MySQL սերվերի օգտատերեր, գաղտնաբառեր - օգտատերերի և գաղտնաբառերի ավելացում, փոփոխություն: Վահանակ
Նոր օգտվողի ստեղծում - սերվերին միանալը MySQLորպես root, անցնել տվյալների բազա, ավելացնել օգտվող, թարմացնել արտոնությունները.
# mysql -u root -p mysql օգտագործել mysql; mysql INSERT INTO user (Host, User, Password) VALUES ("%)"," username ", PASSWORD (" password ")); mysql flush արտոնություններ;
Փոխեք օգտվողի գաղտնաբառը db1.example.org հեռավոր հոսթի վահանակից.
# mysqladmin -u օգտվողի անուն -h db1.example.org -p գաղտնաբառը « new-password »
Փոխեք օգտվողի գաղտնաբառը վահանակից MySQL- միացեք որպես root, թարմացրեք գաղտնաբառը, թարմացրեք արտոնությունները.
# mysql -u root -p mysql SET PASSWORD FOR " user "@" hostname " = PASSWORD (" passwordhere "); mysql flush արտոնություններ;
Արմատային սերվերի գաղտնաբառի վերականգնում/փոխում MySQL- կանգ առնել MySQL, սկսել առանց արտոնությունների աղյուսակների, միանալ որպես root, սահմանել նոր գաղտնաբառ, դուրս գալ և վերագործարկել MySQL.
# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql-ի թարմացում օգտատիրոջ սահմանած գաղտնաբառ=PASSWORD(" newrootpassword ") where User="root"; mysql; flush արտոնություններ; mysql դուրս գալ # /etc/init.d/mysql stop # /etc/init.d/mysql start
Սահմանեք արմատային գաղտնաբառ, եթե կա root գաղտնաբառը:
# mysqladmin -u արմատային գաղտնաբառը նոր գաղտնաբառ
Թարմացրեք արմատային գաղտնաբառը.
# mysqladmin -u արմատ -p հին գաղտնաբառ նոր գաղտնաբառ
Localhost հոսթից սերվերին միանալու իրավունքի սահմանում «passwd» գաղտնաբառով - subroot-ի միացում, տվյալների բազայի անցում, արտոնությունների սահմանում, արտոնությունների թարմացում.
# mysql -u root -p mysql օգտագործել mysql; mysql-ի օգտագործումը *.*-ով տրամադրել է bob @localhost-ին, որը նույնականացվել է « passwd»-ով; mysql flush արտոնություններ;
Օգտատիրոջ համար տվյալների բազան օգտագործելու արտոնությունների սահմանում - միացում որպես root, անցում դեպի տվյալների բազա, արտոնությունների սահմանում, արտոնությունների թարմացում.
# mysql -u root -p mysql օգտագործել mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ("%","databasename","username","Y","Y","Y"," Y", "Y", "N"); mysql flush արտոնություններ;
Mysql-ը տալիս է տվյալների բազայի անվանման բոլոր արտոնությունները .* օգտանունին @localhost; mysql flush արտոնություններ;
Թարմացրեք տեղեկատվությունը տվյալների բազայում.
Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y", որտեղ = օգտվող";
Աղյուսակում տողի ջնջում.
Mysql Ջնջել որտեղից = «ինչ էլ որ լինի»;
Տվյալների բազայում արտոնությունների թարմացում.
mysql flush արտոնություններ;
Կրկնօրինակներ - տվյալների բազայի ստեղծում, վերականգնում: Վահանակ
Ստեղծեք բոլոր տվյալների բազաների կրկնօրինակ պատճենը alldatabases.sql ֆայլում՝
# mysqldump -u root -p գաղտնաբառը -opt ; /tmp/alldatabases.sql
Կրկնօրինակեք մեկ տվյալների բազա databasename.sql ֆայլում՝
# mysql dump -u օգտվողի անուն -p գաղտնաբառ - տվյալների բազաների տվյալների բազայի անունը ; /tmp/databasename.sql
Կրկնօրինակեք մեկ աղյուսակ databasename.tablename.sql ֆայլում՝
# mysql dump -c -u օգտվողի անուն -p գաղտնաբառ տվյալների բազայի անունը սեղանի անուն; /tmp/databasename.tablename.sql
Տվյալների բազայի (կամ աղյուսակի) վերականգնում կրկնօրինակից.
# mysql -u օգտվողի անուն -p գաղտնաբառ տվյալների բազայի անուն< /tmp/databasename.sql
Տվյալների բազայի աղյուսակների ստեղծում: Վահանակ
փոքր տառերը նշում են սյունակների անունները.
ԿԱՊԻՏԱԼ տառեր - սյունակների տեսակներն ու հատկանիշները;
մեջ (փակագծերում) - սյունակի տեսակի արժեքը:
Ստեղծեք աղյուսակ 1 օրինակ.
mysql CREATE TABLE (անունը VARCHAR(20), միջին սկզբնական VARCHAR(3), ազգանուն VARCHAR(35), վերջածանց VARCHAR(3), officeid VARCHAR(10), userid VARCHAR(15), օգտվողի անուն VARCHAR(8), էլ. VARCHAR(35): ) ), հեռախոս VARCHAR(25), խմբեր VARCHAR(15), ամսաթիվ DATE, timestamp TIME, pgpemail VARCHAR(255));Ստեղծեք աղյուսակ 2 օրինակ.
Mysql ստեղծել աղյուսակ (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, անուն VARCHAR(35), միջին անուն VARCHAR(50), ազգանուն VARCHAR(50) լռելյայն «bato»);
MySQL սերվերի տեղադրում և կառավարում:
Առաջին անգամ MySQL-ի տեղադրում և գործարկում:
Տեղադրում.
MySQL-ի տեղադրումը բավականին պարզ է:Նախ պետք է ներբեռնել և ապափաթեթավորել աղբյուրները (կարծում եմ՝ չպետք է գրեք, թե ինչպես դա անել):Դրանք կարող եք գտնել MySQL կայքում՝ բաժնում: - ցանկացածի համարճաշակի և ցանկացած ՕՀ-ի համար, քանի որ MySQL-ն աշխատում է գրեթե բոլոր հարթակներում:
Եթե դուք աշխատում եք Unix պլատֆորմի վրա (մասնավորապես, օրինակներ կտամ Linux-ի համար, որոնք մի փոքր տարբերվում են Unix-ի այլ հարթակների համար), ապա պետք է հետևեք հետևյալ քայլերին.
shell> gunzip mysql-VERSION-OS.tar.gz | tar xvf -shell> ln -s mysql-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db shell> bin/safe_mysqld & |
Դուք պետք է բացեք աղբյուրները /usr/local գրացուցակում, քանի որ այս գրացուցակը նշված է տեղադրման սկրիպտներում և ստեղծվում է mysql գրացուցակի սիմհղում. սա արվում է, քանի որ այս գրացուցակը նշված է նույն սկրիպտներում: Դուք պետք է խմբագրեք mysql_install_db և safe_mysqld սկրիպտները՝ կապված ձեր համակարգի հետ, որպեսզի դրանք սկսեն աշխատել, մասնավորապես՝ ֆիքսել ուղին՝ նշելու mysqld-ի և տվյալների բազաների գտնվելու վայրը: Mysqld daemon-ը գործարկելու համար դուք պետք է գնաք /usr/local/mysql/bin գրացուցակ և գործարկեք safe_mysql սկրիպտը հետին պլանում: - ինչ-որ բան այն չէ սկրիպտների հետ: Կարող եք կարգավորել mysql սերվերը, որպեսզի սկսի համակարգչի բեռնման ժամանակ: Դա անելու համար դուք պետք է տեղադրեք safe_mysql գործարկումը համակարգի սկզբնավորման ֆայլերից մեկում (դրանք տարբերվում են՝ կախված Linux-ի տարբերակից): Linux Slakware-ի համար ավելացրեք հետևյալը /etc/rc.d/rc.local ֆայլին.
/usr/local/mysql/bin/safe_mysqld &
Ինչ վերաբերում է Windows-ին, որի երկրպագուն եմ, ապա այստեղ տեղադրումն անցնում է գրեթե առանց խնդիրների, ապափաթեթավորեք zip արխիվը, գործարկեք exe ֆայլը և հետո ամեն ինչ ինքն իրեն է աշխատում, սովորաբար այն տեղադրվում է c:mysql գրացուցակում: Windows NT-ում MySQL-ը տեղադրվում է որպես ծառայություն, և դուք կարող եք նշել, թե ինչպես է այն սկսվում ձեռքով կամ ավտոմատ կերպով (Start-Settings-Control Panel-Services-MySQL-Startup):
Սկսեք MySQL-ը:
Սերվերը սովորաբար կառավարվում է հրամանի տողից: Ես արդեն գրել եմ Linux-ի մասին, բայց Windows 95/98-ում բացեք DOS նիստ և գործարկեք հետևյալ հրամանները.
cd mysqlbin mysqlbin>mysqld --ինքնուրույն |
Այս հրամանը կսկսի mysql դեյմոնը հետին պլանում: Windows 95/98-ը չի նախատեսում mysqld-ը որպես ծառայություն գործարկել:
Mysqld-ը սկսելիս կարող եք նշել հետևյալ տարբերակները.
-?, --Օգնություն | Հղում |
-b, --basedir= | Ճանապարհ դեպի գրացուցակ, որտեղ տեղադրված է mysql-ը |
-h, --datadir | Ուղ դեպի գրացուցակ, որտեղ պահվում են տվյալների բազաները: |
-l, --log= | Գործարքների գրանցամատյանի անվանումը |
-L, --լեզու= | Լռելյայն լեզու (սովորաբար անգլերեն): |
-P, --port= | Միացման նավահանգիստ: |
--բաց թողնել-գրանտ-աղյուսակներ | Անտեսեք արտոնությունների աղյուսակները: Սա բոլոր աղյուսակներին լրիվ հասանելիություն է տալիս բոլորին: Չպետք է տրվի սովորական օգտվողներ mysqld գործարկելու թույլտվություններ: |
--skip-name-resolve | Թույլ է տալիս մուտք գործել միայն այն հոսթերներին, որոնց IP հասցեները նշված են արտոնությունների աղյուսակներում: Օգտագործվում է ավելի բարձր մակարդակի պաշտպանության համար: |
---ցանցային աշխատանք | Օգտագործեք կապեր միայն localhost ինտերֆեյսի միջոցով: |
-V, --տարբերակ | Ցուցադրել տարբերակի մասին տեղեկությունները: |
Այժմ դուք կարող եք փորձել մուտք գործել սերվեր: Դա անելու համար օգտագործեք mysql հրամանը: Սկզբում կա մեկ օգտվող, ում տրված է մուտք գործելու իրավունք. արմատ, որը չունի գաղտնաբառ։Առաջին բանը, որ պետք է անել՝ մուտք գործել որպես root և դրա համար գաղտնաբառ սահմանել։ Mysql հրամանը կարող է օգտագործել հետևյալ ընտրանքները.
Նշում. Mysqld և mysql հրամաններն ունեն մի քանի այլ տարբերակներ, բայց դրանք այս պահին առանձնապես հետաքրքրություն չեն ներկայացնում:
Root-ի գաղտնաբառը սահմանելուց հետո դուք պետք է վերագործարկեք սերվերը mysqladmin reload հրամանով, որպեսզի փոփոխություններն ուժի մեջ մտնեն: Դրանից հետո կարող եք նորից փորձել մուտք գործել:
mysqlbinmysql -u root -p mysql Մուտքագրեք գաղտնաբառը՝******** |
Արտոնությունների համակարգ և անվտանգություն MySQL-ում:
mysql տվյալների բազայի և արտոնությունների աղյուսակներ:
Այսպիսով, դուք հաջողությամբ մուտք եք գործել mysql տվյալների բազա, որն օգտագործվում է սերվերը կառավարելու համար: Ի՞նչ է գտնվում այստեղ: Եվ այստեղ կա 5 աղյուսակ, որոնք ոչնչով չեն տարբերվում տվյալների բազայի այլ աղյուսակներից, բացառությամբ, որ այս աղյուսակներն օգտագործվում են մուտքի հնարավորություն ապահովելու համար: տվյալների բազաների տվյալները և դրանցում առկա աղյուսակները օգտվողներին: Դիտարկենք դրանցից յուրաքանչյուրը:
Մուտքագրեք հետևյալ հրամանը, որը ցույց կտա աղյուսակները mysql տվյալների բազայում.
mysql>ցուցադրել աղյուսակները;
|
Եկեք արագ նայենք աղյուսակներից յուրաքանչյուրի գործառույթներին.
- օգտագործող
Նշում է, թե արդյոք օգտվողին, որը փորձում է միանալ սերվերին, թույլատրվում է դա անել: Պարունակում է օգտվողի անունը, գաղտնաբառը և արտոնությունները: Եթե մուտքագրեք հրամանը ցույց տալ սյունակները օգտվողից;, ապա ստանում ենք հետևյալը.դաշտ տիպ Դատարկ բանալի Կանխադրված Լրացուցիչ Հյուրընկալող char (60) PRI օգտագործող char (16) PRI Գաղտնաբառ char (8) select_priv char (1) Ն Insert_priv char (1) Ն Update_priv char (1) Ն delete_priv char (1) Ն Create_priv char (1) Ն Drop_priv char (1) Ն Reload_priv char (1) Ն Shutdown_priv char (1) Ն process_priv char (1) Ն File_priv char (1) Ն Սկզբում այս աղյուսակը պարունակում է արմատային օգտվողին ձեր սահմանած գաղտնաբառով և հոսթի անունը «%»: Ըստ նախնականի, root-ը կարող է մուտք գործել ցանկացած հոսթից, ունի լիարժեք արտոնություններ և մուտք դեպի բոլոր տվյալների բազաները: Աղյուսակը պարունակում է նաև մուտքագրում օգտվողի համար: «%», որը պետք է անհապաղ հեռացվի, քանի որ թույլ է տալիս մուտք գործել ցանկացած օգտատիրոջ։
ջնջել օգտատիրոջից, որտեղ օգտատեր===»%»; Նոր օգտվող ավելացնելու համար կատարեք հետևյալը.
տեղադրեք օգտվողի (հյուրընկալող, օգտվող, գաղտնաբառ) արժեքները ("%.domain.com", "john", գաղտնաբառ ("df456"); տեղադրեք օգտվողի (հյուրընկալող, օգտվող, գաղտնաբառ) արժեքները ("localhost, «Մերի», գաղտնաբառ («խոհանոց»); ընտրել հյուրընկալող, օգտատեր, գաղտնաբառ օգտվողից; Հյուրընկալող օգտագործող Գաղտնաբառ % արմատ 456g879k34df9 %.domain.com Ջոն 657t234d980hg6 localhost մերի 234d76gh88rt9 Բացատրություններ:
1. Ներդիր հրամանը տվյալները տեղադրում է աղյուսակի մեջ, մի մոռացեք հրամանները վերջացնել «;»-ով։
2. Գաղտնաբառ մուտքագրելիս օգտագործեք գաղտնաբառը() ֆունկցիան, հակառակ դեպքում գաղտնաբառը չի աշխատի:
3. Բոլոր գաղտնաբառերը գաղտնագրված են mysql-ով, այնպես որ Գաղտնաբառ դաշտում տեսնում եք անհեթեթություն: Սա արվում է անվտանգության նկատառումներով:
4. Օգտատերերի աղյուսակում օգտատերերին արտոնություններ տալը լավ պրակտիկա չէ, քանի որ այս դեպքում դրանք գլոբալ են և տարածվում են բոլոր տվյալների բազաների վրա: Յուրաքանչյուր օգտվողին տրամադրեք արտոնություններ db աղյուսակի հատուկ տվյալների բազայի համար, որը կքննարկվի հաջորդիվ:
5. Ցանցի մուտքի համար հոսթի անունը սահմանելիս խորհուրդ է տրվում բացահայտորեն նշել հոսթի ամբողջական անունը, այլ ոչ թե «%» ենթացանցերը՝ ավելի մեծ անվտանգության համար:
Նշում է, թե որ տվյալների շտեմարանները, որոնց օգտագործողներին և որ հոսթորդներից է թույլատրվում մուտք գործել: Այս աղյուսակում դուք կարող եք յուրաքանչյուր օգտվողին տրամադրել մուտք դեպի տվյալների բազա և տրամադրել արտոնություններ: Եթե գործարկեք հրամանը ցույց տալ սյունակներ db-ից;մենք ստանում ենք հետևյալը.դաշտ տիպ Դատարկ Կանխադրված Լրացուցիչ Հյուրընկալող char (60) PRI Դբ char (32) PRI օգտագործող char (16) PRI select_priv char (1) Ն Insert_priv char (1) Ն Update_priv char (1) Ն delete_priv char (1) Ն Create_priv char (1) Ն Drop_priv char (1) Ն Լռելյայնորեն, բոլոր արտոնությունները դրված են «N»-ի վրա: Օրինակ, եկեք օգտվողին Ջոնին տրամադրենք գրադարանի տվյալների բազա և նրան ընտրելու, տեղադրելու և թարմացնելու արտոնություններ (հիմնական mysql հրամանների նկարագրությունը կտրվի առանձին բաժնում, այժմ իմ նպատակն է ցույց տալ, թե ինչպես են աղյուսակները աշխատում արտոնություններով):
տեղադրեք db-ում (հյուրընկալող, օգտատեր, db,select_priv,insert_priv,update_priv) արժեքները ("%.domain.com","john","գրադարան","Y","Y","Y"); db աղյուսակում սահմանված արտոնությունները վերաբերում են միայն գրադարանի տվյալների շտեմարանին: Եթե այս արտոնությունները սահմանեք օգտվողի աղյուսակում, ապա դրանք կկիրառվեն այլ տվյալների բազաների վրա, նույնիսկ եթե դրանց մուտքը հստակ սահմանված չէ:
- Հյուրընկալող
Հյուրընկալող աղյուսակը օգտագործվում է db աղյուսակում մուտքի տիրույթը ընդլայնելու համար: Օրինակ, եթե մեկից ավելի հոսթինգի պետք է տրվի մուտք դեպի տվյալների շտեմարան, ապա db աղյուսակի հյուրընկալող սյունակը պետք է դատարկ մնա, իսկ անհրաժեշտ հոսթինգը: անունները պետք է մուտքագրվեն հյուրընկալող աղյուսակում: Կատարեք հրամանը ցույց տալ սյունակներ հյուրընկալողից;
դաշտ տիպ Դատարկ բանալի Կանխադրված Լրացուցիչ Հյուրընկալող char (60) PRI Դբ char (32) PRI select_priv char (1) Ն Insert_priv char (1) Ն Update_priv char (1) Ն delete_priv char (1) Ն Create_priv char (1) Ն Drop_priv char (1) Ն
Ինչպես երևում է աղյուսակից, այստեղ կարող եք նաև արտոնություններ սահմանել տվյալների շտեմարան մուտք գործելու համար: Դրանք սովորաբար հազվադեպ են օգտագործվում առանց անհրաժեշտության: Մուտքի բոլոր արտոնությունները պետք է սահմանվեն db աղյուսակում յուրաքանչյուր օգտագործողի համար, իսկ հյուրընկալող աղյուսակում նշեք միայն հյուրընկալողների անունները: Սերվերը կարդում է բոլոր աղյուսակները, ստուգում է օգտվողի անունը, գաղտնաբառը, հոսթի անունը, տվյալների բազայի անվանումը, արտոնությունները: Եթե ընտրելու, ներդիրի արտոնությունները դրված են «Y» db աղյուսակում և «N»՝ հյուրընկալող աղյուսակում, ապա վերջում օգտատերը դեռ կստանա «Y»: շփոթեցնող է, ավելի լավ է արտոնություններ հատկացնել db աղյուսակին:
Այս 3 աղյուսակները հիմնականն են։MySQL-ի նոր տարբերակներում՝ սկսած 3.22-ից, ավելացվել են ևս 2 աղյուսակներ՝ tables_priv և columns_priv, որոնք թույլ են տալիս մուտքի իրավունքներ սահմանել տվյալների բազայում կոնկրետ աղյուսակի և նույնիսկ կոնկրետ սյունակի վրա։ Նրանք աշխատում են db աղյուսակի նման, դրանք վերաբերում են միայն աղյուսակներին և սյունակներին: Նաև, սկսած 3.22 տարբերակից, կարող եք օգտագործել GRANT հրամանը տվյալների բազաներին, աղյուսակներին և աղյուսակների սյունակներին հասանելիություն տրամադրելու համար՝ վերացնելով db, tables_priv և columns_priv աղյուսակները ձեռքով փոփոխելու անհրաժեշտությունը: GRANT հրամանը մանրամասն կքննարկվի աղյուսակում: հետեւյալ բաժինները.
MySQL-ի կողմից տրված արտոնություններ:
Արտոնություն | Սյունակ | Որտեղ օգտագործվում է |
ընտրել | select_priv | սեղաններ |
ներդիր | Insert_priv | սեղաններ |
թարմացնել | Update_priv | սեղաններ |
ջնջել | delete_priv | սեղաններ |
ցուցանիշը | Index_priv | սեղաններ |
փոխել | Alter_priv | սեղաններ |
ստեղծել | Create_priv | DB, աղյուսակներ, ինդեքսներ |
անկում | Drop_priv | DB կամ աղյուսակներ |
դրամաշնորհ | Grant_priv | DB կամ աղյուսակներ |
հղումներ | Հղումներ_priv | DB կամ աղյուսակներ |
վերաբեռնել | Reload_priv | սերվերի կառավարում |
անջատել | Shutdown_priv | սերվերի կառավարում |
գործընթաց | process_priv | սերվերի կառավարում |
ֆայլ | File_priv | մուտք դեպի սերվերի ֆայլեր |
Ընտրել- օգտագործվում է աղյուսակներից տեղեկատվություն հանելու համար: Select-ը կարող է օգտագործվել նաև առանց որևէ տվյալների բազա մուտք գործելու թույլտվության, օրինակ՝ հաշվիչ:
Ներդիր- օգտագործվում է աղյուսակում տեղեկատվություն տեղադրելու համար: Օրինակ.
Ջնջել- օգտագործվում է աղյուսակներից տեղեկատվություն հեռացնելու համար:
Ստեղծել- թույլ է տալիս դրանցում ստեղծել տվյալների բազաներ և աղյուսակներ: Օրինակներ.
mysql>mysqladmin -u john -ptest ստեղծել mydb //Ստեղծում է դատարկ տվյալների բազա: mysql>օգտագործել mydb; տվյալների բազան փոխվել է. ստեղծել աղյուսակի մոնիտորինգ (id int(5) ոչ null auto_increment, first_name varchar(15) not null, ազգանուն varchar(20) ոչ null, հասցեն varchar(80) ոչ null, առաջնային բանալին (id), բանալին (ազգանուն)); |
Անկում- օգտագործվում է աղյուսակները և տվյալների բազաները ջնջելու համար:
Դրամաշնորհ- թույլ է տալիս օգտվողին տրամադրել այլ օգտվողների արտոնություններ, որոնք ինքն ունի: Երկու տարբեր արտոնություններ և GRANT արտոնություններ ունեցող երկու օգտվող կարող են համատեղել իրենց թույլտվությունները:
Ցուցանիշ- թույլ է տալիս օգտվողին ստեղծել և ջնջել ինդեքսները:
ֆայլ- Այս իրավունքով օգտվողը կարող է կատարել LOAD DATA INFILE և SELECT...INTO OUTFILE հրամանները և կարող է կարդալ և գրել ցանկացած ֆայլ MySQL սերվերում:
Վերջին 3 արտոնությունները օգտագործվում են հրամանից սերվերը կառավարելու համար mysqladmin.
MySQL հատուկ օգտվողներ.
MySQL-ում կան 3 հատուկ օգտվողներ. monty, admin և dummy:
- Մոնթի
Գերօգտատեր: Կարող է մուտք գործել սերվեր կամ տեղական հոսթից կամ ցանցի ցանկացած հոսթից: Ունի մուտք դեպի բոլոր տվյալների բազաները և բոլոր արտոնությունները, բայց եթե root-ը կարող է մուտք գործել առանց գաղտնաբառի առաջին անգամ, monty-ն պետք է օգտագործի գաղտնաբառ և պետք է լինի: ձեռքով ավելացվել է աղյուսակների արտոնությունները:
Հարկ է նշել, որ տվյալները պետք է մուտքագրվեն ինչպես localhost-ի, այնպես էլ «%»-ի, այսինքն՝ ցանցի ցանկացած հոսթի համար։
- ադմին
Օգտատեր, ով կարող է առանց գաղտնաբառի մուտք գործել սերվեր, և որին վերապահված են վարչական արտոնություններ Վերբեռնել և մշակել.admin օգտվողը կարող է օգտագործել հրամաններ mysqladmin վերաբեռնում, mysqladmin թարմացում և mysqladmin flush-*, և mysqladmin գործընթացների ցուցակ.
ադմինիստրատորը մուտք չունի տվյալների շտեմարաններ: Որոշ տվյալների շտեմարաններ մուտք գործելու արտոնությունները պետք է տրվեն անհատապես կամ db աղյուսակում կամ GRANT հրամանով:
- կեղծիք
Օգտատեր, որը կարող է մուտք գործել սերվեր առանց գաղտնաբառի, բայց միայն localhost-ից: Բոլոր գլոբալ արտոնությունները սահմանված են «N», բացառությամբ «USAGE»-ի, որը թույլ է տալիս կեղծանուն ստեղծել առանց արտոնությունների օգտատերեր: Տվյալների բազայի մուտքի իրավունքները պետք է սահմանվեն արմատից:
MySQL-ում տվյալների բազաների և աղյուսակների ստեղծում և փոփոխում:
Տվյալների բազայի ստեղծում.
MySQL-ում տվյալների բազայի ստեղծումը կատարվում է կոմունալ ծրագրի միջոցով mysqladminՍկզբում կա միայն mysql տվյալների բազա ադմինիստրատորի համար և թեստային տվյալների բազա, որը կարող է մուտք գործել ցանկացած օգտվող և որը լռելյայն դատարկ է: Ստորև բերված օրինակը ցույց է տալիս տվյալների բազայի ստեղծումը:
Կամ, լինելով մեկ այլ տվյալների բազայում, օրինակ, mysql-ում, մուտքագրեք հրամանը.
mysql>օգտագործել data1 Տվյալների բազան փոխվել է: |
Այժմ դուք կարող եք ստեղծել աղյուսակներ և մուտքագրել տեղեկատվություն:
Տվյալների տեսակները MySQL-ում.
Աղյուսակներ ստեղծելուց առաջ դուք պետք է իմանաք, թե MySQL-ի տվյալների որ տեսակներն են աջակցում: Դրանք բոլորը ներկայացված են հետևյալ աղյուսակում.
ՄԵԾ[(երկարություն)] | 8 բայթ ամբողջ թիվ | ||
ԲԼՈԲ | Երկուական օբյեկտ (առավելագույն երկարությունը 65535 բայթ) | ||
CHAR (NUM) | Հաստատուն երկարությամբ լար (1 | DATE | Պահպանում է ամսաթվի տվյալները: Օգտագործում է «YYYY-MM-DD» ձևաչափը: Կարող է փոփոխվել որպես տող կամ թիվ: YYYY-MM-DD ("- " կարող է լինել ՑԱՆԿԱՑԱԾ ոչ թվանշան) YY-MM-DD ("-" կարող է լինել ՑԱՆԿԱՑԱԾ ոչ թվանշան) YYMMDD YYMM Այս տվյալների տիպի միջակայքը 0000-00-00-ից 9999-12 է: -31. Ի տարբերություն TIMESTAMP-ի, DATE-ն ընդունում է տարիները որպես երկնիշ 0000-ից մինչև 0099: Սա շատ դեպքերում շատ օգտակար չէ: Օգտագործեք քառանիշ տարիներ DATE դաշտերում: DATE տեսակը 4 բայթ է: |
DATETIME | DATE և TIME տեսակների միություն: DATETIME տեսակը նույնական է TIMESTAMP տեսակին հետևյալ բացառություններով. Երբ գրառումը տեղադրվում է DATETIME տիպի դաշտեր պարունակող աղյուսակում, DATETIME դաշտը չի փոխվում: DATETIME տիպի դաշտի միջակայք՝ «0000-01-01 00:00:00» - «9999-12-31 23:59:59», երբ օգտագործվում է լարային համատեքստում, և «00000000000000» - «99991231235959», երբ օգտագործվում է համարով: համատեքստ. DATETIME տեսակը 8 բայթ է: | ||
ՏԱՍՆԱԿԱՆ (երկարություն, դեկ) | Տասնորդական լողացող կետի համարը: | ||
ԿՐԿՆԱԿԻ [(երկարություն, դեկ)] | Թիվը (4 կամ 8 բայթ) կրկնակի ճշգրտությամբ առավելագույն երկարությունըև ֆիքսված թիվ տասնորդական թվեր. | ||
FLOAT [(ճշգրիտ)] | Լողացող կետի համարը. FLOAT (4) և FLOAT մեկ ճշգրիտ: FLOAT (8) ապահովում է կրկնակի ճշգրտություն: | ||
FLOAT [(երկարություն, տասնորդականներ)] | Առավելագույն երկարությամբ և տասնորդականների ֆիքսված քանակով մեկ ճշգրիտ թիվ (4 բայթ): | ||
INT[(երկարություն)] | Ամբողջ թիվ (4 բայթ): | ||
INTEGER[(երկարություն)] | Ամբողջ թիվ 4 բայթ | ||
ԵՐԿԱՑՈՒՅԹ | Երկուական օբյեկտ, որի երկարությունը առավելագույնը 2**32 բայթ է: | ||
ՄԻՋԻՆ ԳԼՈՒԲ | Երկուական օբյեկտ, որի առավելագույն երկարությունը 16777216 բայթ է: | ||
ՄԻՋԻՆ [(երկարություն)] | Ամբողջ թիվ (3 բայթ): | ||
ԻՐԱԿԱՆ [(երկարություն, դեկ)] | Նույնական է DOUBLE-ին (8 բայթ): | ||
SMALLINT[(երկարություն)] | Ամբողջ թիվ (2 բայթ): | ||
TINYBLOB | Երկուական օբյեկտ, որի երկարությունը առավելագույնը 255 բայթ է: | ||
TINYINT[(երկարություն)] | Ամբողջ թիվ (1 բայթ): | ||
VARCHAR(NUM) | Փոփոխական երկարությամբ տող (1 | ԺԱՄԱՆԱԿ | Պահպանում է ժամանակի տեղեկատվությունը: Օգտագործում է «HH:MM:SS» ձևաչափը: Կարող է օգտագործվել որպես տող կամ թիվ: MySQL TIME տեսակը հասկանում է հետևյալ շարահյուսությունը. HH:MM:DD HHMMDD HHMM HH TIME տիպի տվյալները 3 բայթ են: |
TIMESTAMP (NUM) | Ինքնաբերաբար փոխվում է տեղադրման/թարմացման ժամանակ: Այն ունի YYMMDDHHMMSS կամ YYYYMMDDHHMMSS ձևաչափ: INSERT անելիս կարող եք փոփոխել TIMESTAMP դաշտը: Սա օգտակար է, երբ ցանկանում եք մուտքագրման համար հատուկ ամսաթիվ/ժամ սահմանել: Փոփոխությունների ժամանակ դուք չպետք է արժեք նշեք ձեր TIMESTAMP դաշտի համար կամ նշեք NULL որպես արժեք՝ մուտքագրելու համար: Հակառակ դեպքում, դուք կստանաք անվավեր արժեք այս դաշտի համար: ODBC-ի և Access-ի հետ mysql-ն օգտագործելիս դուք պետք է օգտագործեք 14 արժեքը NUM-ի համար, քանի որ դա հանգեցնում է նրան, որ MySQL-ը տարիների ընթացքում միշտ օգտագործում է չորս թվանշան: 12 արժեքը կստիպի MySQL-ն օգտագործել երկու նիշ տարվա համար: Նախնական արժեքը 14 է: Նկատի ունեցեք, որ մի քանի TIMESTAMP դաշտերով աղյուսակների դեպքում ինքնաբերաբար կթարմացվի միայն առաջին այդպիսի դաշտը: |
Աղյուսակների ստեղծում և ձևափոխում:
Եկեք ստեղծենք հաճախորդների աղյուսակը data1 տվյալների բազայում.
mysql>օգտագործել data1 Տվյալների բազան փոխվել է: mysql>ստեղծել աղյուսակի հաճախորդներ (emp_id int(4) ոչ null auto_increment, emp_name varchar(10) ոչ null, emp_lname varchar(15) ոչ null, հասցեն varchar(60) ոչ null, հեռախոս int(10), հիմնական բանալի(emp_id) ); |
Մենք ստեղծել ենք դատարկ աղյուսակ, որի մեջ տվյալներ մուտքագրելու մի քանի եղանակ կա.
ա) ձեռքով օգտագործելով հրամանը ներդիր մեջ;
բ) բեռնել տվյալները տեքստային ֆայլից, որն ավելի նախընտրելի է, հատկապես, եթե անհրաժեշտ է մուտքագրել մի քանի հազար գրառում: Այս հրամանի շարահյուսությունը կներկայացվի ավելի ուշ:
գ) օգտագործեք mysqlimport ծրագիրը՝ տեքստային ֆայլից տվյալները բեռնելու համար:
Տվյալների ձեռքով մուտքագրման օրինակ.
Ինչ վերաբերում է auto_incrementսյունակում emp_id, սա նշանակում է, որ այս սյունակի թվային արժեքը յուրաքանչյուր նոր մուտքի հետ ավտոմատ կերպով կավելանա մեկով։ Այսինքն, եթե մենք մուտքագրել ենք 1001 արժեքը, ապա հաջորդը կլինի 1002 և այլն։ Նման սյունակում արժեքը մուտքագրվում է մեկ անգամ՝ սահմանեք մեկնարկային կետը, և հետագայում սերվերը կփոխարինի անհրաժեշտ արժեքները:
LOAD DATA INFILE հրամանի շարահյուսություն:
ՏՎՅԱԼՆԵՐԻ ՄԱՆՖԱՅԼԸ «file_name.txt» ՍԵՂԱՆԱԿԻ ՄԵՋ tbl_name ԿՐՑՎԱԾ Է «»] ] [(col_name,...)]Ենթադրենք, կա մի քանիսը տեքստային ֆայլ 123.txt, որը պարունակում է 2000 գրառում, որոնք պետք է մուտքագրվեն աղյուսակում: Դուք պետք է ստեղծեք աղյուսակ, որն ունի նույն կառուցվածքը և նույն թվով դաշտեր, ինչ ֆայլը (և համապատասխան տվյալների տեսակները): Ենթադրենք, որ ֆայլի դաշտերը առանձնացված են: ստորակետներով: Բացի այդ, ֆայլը պետք է լինի ճիշտ տվյալների բազայում: Մենք մուտքագրում ենք հետևյալ հրամանը.
Բեռնել «123.txt» ՏՎՅԱԼՆԵՐԻ ՏՎՅԱԼՆԵՐԻ ԻՆՖԱՅԼԸ հաճախորդների աղյուսակի դաշտերում, որոնք վերջանում են «,"-ով;
Այսքանը: Ֆայլից ստացված տվյալները տեղադրվում են աղյուսակում:
Հրամաններն օգտագործվում են աղյուսակները և դրանցում առկա տվյալները փոփոխելու համար: թարմացնել և փոխելսեղան. Դիտարկենք դրանց ազդեցությունը հաճախորդների աղյուսակի օրինակի վրա.
emp_id | emp_name | emp_lname | հասցեն | հեռախոս |
---|---|---|---|---|
1001 | Ջոն | քայլող | Նյու Յորք | 1235468798 |
1002 | Բիլլ | Սմիթ | Չիկագո | 7650945237 |
1003 | Ջեկ | Նիկոլսոն | Դալլաս | 9874325097 |
Հրամանի գործողության օրինակ փոխել աղյուսակը:
Կարող եք ինքներդ ստուգել :)
Աղյուսակներում տվյալների փոփոխությունը կատարվում է հրամանի միջոցով թարմացնել.Օրինակ, վերցնենք նույն գնորդների աղյուսակը։
mysql>update buyers set address="Seattle" where emp_lname="Smith"; |
Հրամաններն օգտագործվում են նաև աղյուսակները փոփոխելու համար: Թողնել և ջնջել.
Ջնջել-ջնջում է աղյուսակից տող:Օրինակ, եթե մուտքագրեք հրամանը
ջնջել գնորդներից, որտեղ emp_id="1002"
Բիլ Սմիթի համար գիծը կհեռացվի:
Անկում- եթե օգտագործվում է Alter աղյուսակում, սյունակը հեռացնում է աղյուսակից:
Թիմ Անկումօգտագործվում է նաև աղյուսակները և տվյալների բազաները ջնջելու համար: Զգուշորեն օգտագործեք այն, քանի որ ցանկացած ջնջում անշրջելի է, դուք կարող եք վերականգնել տվյալները միայն կրկնօրինակից:
Ընդհանուր խնդիրներ և դրանց լուծում:
Ամենատարածված խնդիրը հաղորդագրությունն է Օգտատիրոջ մուտքն արգելված է...Եթե սա սովորական օգտվող է, ապա ադմինիստրատորը կարող է զբաղվել դրանով, բայց եթե ադմինիստրատորը ստանում է նման հաղորդագրություն, ապա սա արդեն խնդիր է: Շատ հաճախ, root-ի համար գաղտնաբառ սահմանելիս, ադմինիստրատորը մոռանում է օգտագործել գործառույթը գաղտնաբառ (), բայց պարզապես մուտքագրում է.
թարմացնել օգտվողի հավաքածու գաղտնաբառը = "mamamia" որտեղ օգտվող = "root";
Դրանից հետո, երբ փորձում է մուտք գործել տվյալների բազա, նա ստանում է Access denied հաղորդագրությունը:Նման գաղտնաբառը չի կարդացվի:Ճիշտ պետք է մուտքագրել.
թարմացնել օգտվողի հավաքածու գաղտնաբառը=գաղտնաբառ("mamamia") որտեղ user="root";
Սա շատ կարևոր քայլև պետք է զգույշ լինել, Windows-ում այս դեպքում միակ ելքը սերվերը ջնջելն ու նորի վրա տեղադրելն է, քանի որ դեռ ոչինչ չի կարգավորվել:
Եթե օգտատերը հանդիպի այս խնդրին, հավանական է, որ արտոնությունների աղյուսակները ճիշտ չեն կարգավորվել, հիմնականում նույն գաղտնաբառի կարգավորումը, կամ db և host աղյուսակների գրառումները սխալ են: Հաշվի առեք սա՝ պարզ օրինակ:
|
|
Շատ կարևոր նրբերանգ. User աղյուսակում jerry-ի համար նշված է Select թույլտվությունը, որը գլոբալ է, այսինքն՝ վավեր է ցանկացած տվյալների բազայի համար, նույնիսկ եթե այն մուտք չունի դրան։ Օրինակ՝ եթե jerry-ն մուտքագրում է հրամանը։ :
ընտրել * data2.authors-ից;
նա մուտք կունենա այս աղյուսակը, թեև Db աղյուսակը մուտք չունի data2 տվյալների բազա: Հետևաբար, առանց հատուկ կարիքի, անհրաժեշտ է ոչ թե օգտվողներին արտոնություններ տալ User աղյուսակում, այլ դա անել յուրաքանչյուրի համար Db աղյուսակում: հատուկ տվյալների բազա:
Ենթադրենք, Ջերին ժամանակավորապես աշխատում է այլ բաժնում, որը գտնվում է այլ տիրույթում, և երբ նա փորձում է մուտք գործել տվյալների բազա, նրան մուտքը մերժվում է, քանի որ այդ տիրույթի համակարգիչներին չի թույլատրվում մուտք գործել տվյալների բազա: Այս դեպքում դուք պետք է անեք հետևյալը. մաքրել Host դաշտը Db աղյուսակում և մուտքագրել հետևյալ տվյալները Host աղյուսակում.
թարմացնել db set host="" where user="jerry";
տեղադրեք հոսթի (հոսթ, db) արժեքների մեջ ("%.domain.com","data1");
տեղադրեք հոսթի (հյուրընկալող, db) արժեքները («monster.domain2.com», «data1»);
Արտոնությունները պետք չէ նշել Host աղյուսակում: Հիմնական բանը այն է, որ արտոնությունների աղյուսակների տվյալները ոչ մի տեղ չեն կրկնօրինակվում, որպեսզի հակասություններ չլինեն: Օգտվողի անվան և գաղտնաբառի տվյալները պետք է նշանակվեն User աղյուսակում, արտոնություններ: Db աղյուսակում, հոսթեր, որոնցից մուտքը թույլատրված է, Host աղյուսակում: Եթե ամեն ինչ ուշադիր մուտքագրեք, խնդիրներ չպետք է լինեն:
MySQL 3.22 և ավելի ուշ տարբերակներն ունեն շատ գեղեցիկ GRANT հրաման, որը թույլ է տալիս օգտվողներին մուտք գործել տվյալների բազաներ և աղյուսակներ՝ առանց դրամաշնորհների աղյուսակները ձեռքով փոփոխելու:
ՏՐԱՄԱԴՐԵԼ ընտրել, տեղադրել թարմացում, ջնջել data1.telephone-ում [էլփոստը պաշտպանված է].domain.com նույնականացված «գաղտնաբառով»;
Այս հրամանով դուք կարող եք նշել մուտքի արտոնություններ նույնիսկ աղյուսակի որոշակի սյունակներում.
GRANT ընտրել (id, անուն, հասցե, հեռախոս), թարմացնել (հասցե, հեռախոս) data2.customers-ում [էլփոստը պաշտպանված է].domain.com նույնականացված «գաղտնաբառով»;
Օգտագործելով այս հրամանը, տվյալները ավտոմատ կերպով տեղադրում են Db, Tables_priv և Column_priv աղյուսակներում, ինչը վերացնում է ձեռքով փոփոխության անհրաժեշտությունը:
Եթե Ձեզ անհրաժեշտ է չեղյալ համարել օգտատիրոջ արտոնությունը, օգտագործեք REVOKE հրամանը:
REVOKE թարմացում (հասցե, հեռախոս) data2.customers-ից [էլփոստը պաշտպանված է]%.domain.com;
Տվյալների բազայի հարցումները և Ընտրել հրամանը:
Ես մտադիր չեմ խորանալ SQL լեզվի մեջ, դրա մասին կարող եք կարդալ ցանկացած SQL Server ձեռնարկում, MySQL-ն հիմնականում աջակցում է ամեն ինչ հիմնական հրամաններ ANSI 92 ստանդարտ, բայց հրամանը Ընտրելարժանի է դրան առանձին գլուխ նվիրել։ «Ընտրել» հրամանն օգտագործվում է տվյալների բազայից տեղեկատվություն ստանալու համար հարցումներ անելու համար: Հրամանի շարահյուսությունը հետևյալն է.
SELECT select_expression,... , ...] ՈՒՆԵՆՔ full_where_definition տողեր] ]
Ինչպես երևում է վերը նշվածից, հետ միասին Ընտրեք հրամանըօգտագործվում են հիմնաբառեր, որոնց օգտագործումը մեծապես ազդում է սերվերի պատասխանի վրա։Դիտարկենք դրանցից յուրաքանչյուրը։
- ՀԱՍՏԱՏԱԿԱՆ..
Բաց թողնում է այն տողերը, որտեղ բոլոր ընտրված դաշտերը նույնական են, այսինքն՝ վերացնում է տվյալների կրկնօրինակումը:
- ՈՐՏԵՂ.
Select հրամանի դրույթ, որը թույլ է տալիս սահմանել պրեդիկատներ, որոնց պայմանը կարող է լինել true կամ false աղյուսակի ցանկացած տողի համար: Առբերվում են միայն այն տողերը, որոնց համար նման պնդումը ճիշտ է: Օրինակ.
SELECT u_id,lname հրատարակիչներից WHERE city = "New York";
Վերադարձնում է u_id և lname սյունակները հրատարակիչների աղյուսակից, որոնց արժեքը գտնվում է քաղաք-Նյու Յորք սյունակում: Սա թույլ է տալիս հարցումն ավելի կոնկրետ լինել:
- հարաբերական օպերատորներ.
Հարաբերական օպերատորը մաթեմատիկական նշան է, որը ցույց է տալիս երկու արժեքների համեմատության որոշակի տեսակ: MySQL-ում հասանելի հարաբերական օպերատորներն են.
Հավասար է > Մեծ քան = Մեծ քան կամ հավասար Չի հավասար
Այս օպերատորներն ունեն թվային արժեքների լռելյայն նշանակություն:
Ենթադրենք, դուք ցանկանում եք տեսնել 200-ից բարձր վարկանիշ ունեցող բոլոր հաճախորդներին: Քանի որ 200-ը սկալյար արժեք է, ինչպես գնահատման սյունակի արժեքը, կարող եք օգտագործել հարաբերական օպերատոր՝ նրանց համեմատելու համար:
SELECT * FROM Customs WHERE վարկանիշ > 200;
- Բուլյան օպերատորներ.
Հիմնական բուլյան օպերատորները նույնպես ճանաչված են MySQL-ում: Բուլյան արտահայտությունները կա՛մ ճշմարիտ են, կա՛մ կեղծ, ինչպես պրեդիկատները: Բուլյան օպերատորները կապում են մեկ կամ մի քանի ճշմարիտ/կեղծ արժեքներ և արտադրում են մեկ ճիշտ կամ կեղծ արժեք: SQL-ում ճանաչված ստանդարտ բուլյան օպերատորներն են՝ AND, OR և NOT:
Ենթադրենք, դուք ցանկանում եք տեսնել Դալլասի բոլոր հաճախորդներին, որոնք ունեն 200-ից բարձր վարկանիշ.
SELECT * FROM Customers WHERE city = «Dallas» ԵՎ վարկանիշ > 200;
AND օպերատորից օգտվելիս երկու պայմաններն էլ պետք է պահպանվեն, այսինքն՝ պետք է ընտրվեն Դալլասի բոլոր հաճախորդները, որոնց վարկանիշը 200-ից մեծ է:
OR օպերատորն օգտագործելիս պետք է կատարվի պայմաններից մեկը, օրինակ.
SELECT * FROM Customers WHERE city = "Dallas " OR վարկանիշ > 200;
Այս դեպքում կընտրվեն բոլոր հաճախորդները Դալլասից և բոլոր նրանք, ովքեր ունեն 200-ից բարձր վարկանիշ, նույնիսկ եթե նրանք Դալլասից չեն:
NOT-ը կարող է օգտագործվել բուլյան արժեքները շրջելու համար: Հարցման օրինակ NOT-ով.
SELECT * FROM Customers WHERE city = «Dallas» OR NOT վարկանիշ > 200;
Այս հարցումը կընտրի Դալլասում գտնվող բոլոր հաճախորդներին և բոլոր հաճախորդներին, որոնց վարկանիշը 200-ից պակաս է: Այս հարցումում NOT օպերատորը կիրառվում է միայն վարկանիշային > 200 արտահայտության վրա: Դուք կարող եք կատարել ավելի բարդ հարցում.
SELECT * FROM Customers WHERE NOT (քաղաք = «Դալլաս» ԿԱՄ վարկանիշ > 200);
Այս հարցումում NOT-ը կիրառվում է երկու փակագծված արտահայտությունների վրա: Այս դեպքում, սերվերը կարդում է փակագծերում փակցված արտահայտությունները, որոշում՝ city = «Dallas»-ը ճշմարիտ է, թե գնահատականը > 200: Եթե որևէ պայման ճշմարիտ է, ապա փակագծերի ներսում բուլյան արտահայտությունը հետևյալն է. ճիշտ. Այնուամենայնիվ, եթե փակագծերի ներսում բուլյան արտահայտությունը ճշմարիտ է, ապա պրեդիկատը որպես ամբողջություն կեղծ է, քանի որ NOT-ը վերածում է true-ի կեղծի և հակառակը: Այսինքն՝ կընտրվեն բոլոր ոչ դալասի հաճախորդները, որոնց վարկանիշը 200-ից ցածր է:
- IN.
IN օպերատորը սահմանում է արժեքների մի շարք, որոնց մեջ տրված արժեքկարող է ներառվել կամ չընդգրկվել Օրինակ՝ հարցումը
SELECT * FROM Salespeople WHERE city = "Barcelona" OR city = "London";
կարելի է վերաշարադրել ավելի պարզ.
SELECT * FROM Salespeople WHERE city IN («Բարսելոնա», «Լոնդոն»);
IN-ը սահմանում է արժեքների մի շարք՝ օգտագործելով բազմության անդամների անունները, փակագծերի մեջ փակված և ստորակետներով բաժանված: Այնուհետև այն ուսումնասիրում է նշվածի տարբեր արժեքները՝ փնտրելով համընկնում հավաքածուի արժեքների հետ: . Եթե դա տեղի ունենա, ապա նախադրյալը ճշմարիտ է: Երբ հավաքածուն պարունակում է թվային արժեքներ և ոչ նիշեր, միայնակ չակերտները բաց են թողնվում:
- ՄԻՋԵՎ.
BETWEEN օպերատորը նման է IN օպերատորին: Ի տարբերություն բազմությունից թվերով նշելու, ինչպես դա անում է IN-ը, BETWEEN-ը սահմանում է մի տիրույթ, որի արժեքները պետք է նվազեն՝ պրեդիկատը ճշմարիտ դարձնելու համար: Դուք պետք է մտնեք հիմնաբառՄԻՋԵՎ մեկնարկային արժեքով, բանալին ԵՎ և ավարտի արժեքով: Ի տարբերություն IN-ի, BETWEEN-ը կարգի զգայուն է, և կետի առաջին արժեքը պետք է լինի առաջին արժեքը այբբենական կամ թվային կարգով: Օրինակ.
SELECT * FROM Salespeople WHERE comm BETWEEN .10 AND .12;
Ընտրեք * վաճառողներից, որտեղ քաղաքը «Բեռլինի» և «Լոնդոնի» միջև; - Հավանել.
LIKE-ը վերաբերում է միայն CHAR կամ VARCHAR տիպի դաշտերին, որոնցով այն օգտագործվում է ենթատողեր գտնելու համար: Նրանք. այն որոնում է նիշերի դաշտը՝ տեսնելու, թե արդյոք իր տողի մի մասը համընկնում է պայմանի հետ։Որպես պայման այն օգտագործում է նիշեր՝ հատուկ նիշեր, որոնք կարող են համապատասխանել ցանկացած բանի։ Գոյություն ունեն LIKE-ի հետ գործածվող նիշերի երկու տեսակ.
- «%» նշանը՝ փոխարինելով ցանկացած թվով նիշ:
ընդգծված նիշը (_) փոխարինում է ցանկացած նիշի:
Եթե սահմանենք հետևյալ պայմանները.
ԸՆՏՐԵԼ * Հաճախորդներից, ՈՐՏԵՂ fname LIKE «J%»;
այնուհետև կընտրվեն բոլոր հաճախորդները, որոնց անունները սկսվում են J-ով՝ Ջոն, Ջերի, Ջեյմս և այլն:
- COUNT.
Համախառն ֆունկցիա, որը հաշվում է սյունակի արժեքները կամ աղյուսակի տողերի քանակը: Սյունակի հետ աշխատելիս այն օգտագործում է DISTINCT որպես արգումենտ.
SELECT COUNT (DISTINCT snum) FROM Պատվերներից;
Տողերը հաշվելիս այն ունի շարահյուսություն.
Ընտրեք ՀԱՄԱՐ (*) Հաճախորդներից;
- ԽՈՒՄԲԸ ԸՍՏ.
GROUP BY կետը թույլ է տալիս որոշակի դաշտի արժեքների ենթաբազմություն սահմանել մեկ այլ դաշտի առումով և կիրառել ագրեգատ ֆունկցիա ենթաբազմության վրա: Սա հնարավորություն է տալիս միավորել դաշտերը և ագրեգատ գործառույթները մեկ SELECT կետում: Օրինակ, ենթադրենք, որ ցանկանում եք գտնել յուրաքանչյուր վաճառողի կողմից ստացված գնումների առավելագույն քանակությունը: Նրանցից յուրաքանչյուրի համար կարող եք կատարել առանձին հարցում՝ յուրաքանչյուր դաշտի արժեքի համար աղյուսակից ընտրելով MAX(): GROUP BY-ը թույլ կտա բոլորը տեղադրել մեկ հրամանի մեջ.
SELECT snum, MAX (amt) FROM Պատվերներից GROUP BY snum;
- ՈՒՆԵՑՈՂ.
HAVING-ը սահմանում է այն չափանիշները, որոնք օգտագործվում են որոշակի խմբերի ելքից հեռացնելու համար, ինչպես որ WHERE դրույթն անում է առանձին տողերի համար: Օրինակ.
SELECT cid,cname,price,max(price) //max() նույնպես ագրեգատ ֆունկցիա է FROM customers HAVING max(price)>500;
HAVING-ն աշխատում է WHERE-ի նման, սակայն ագրեգատ ֆունկցիաները չեն կարող օգտագործվել WHERE-ի հետ:
- ՊԱՏՎԻՐԵԼ.
Այս հրամանը պատվիրում է հարցման ելքը՝ ըստ ընտրված սյունակների քանակի արժեքների: Բազմաթիվ սյունակներ պատվիրված են մեկը մյուսի ներսում, ինչպես GROUP BY-ի դեպքում:
- ԳՆՈՒՄ Է.
Օգտագործվում է ենթահարկերում:
SELECT cnum, cname, city FROM Customers WHERE EXISTS (SELECT * FROM Customers WHERE city = «San Jose»);
Այն ընդունում է ենթհարցումը որպես փաստարկ և գնահատում է այն որպես ճշմարիտ, եթե այն արտադրում է որևէ արդյունք, կամ կեղծ, եթե այն չի տալիս: Սա տարբերվում է այլ նախադրյալ հայտարարություններից, քանի որ այն չի կարող անհայտ լինել: Օրինակ՝ մենք կարող ենք որոշել՝ արդյոք որոշ տվյալներ հանել Հաճախորդների աղյուսակից, եթե և միայն այն դեպքում, եթե այդ աղյուսակի հաճախորդներից մեկը կամ մի քանիսը գտնվում են Սան Խոսեում:
- ՄԻՈՒԹՅՈՒՆ.
UNION-ը տարբերվում է ենթհարցերից նրանով, որ երկու (կամ ավելի) հարցումներից ոչ մեկը չի վերահսկվում մեկ այլ հարցումով: Բոլոր հարցումները կատարվում են միմյանցից անկախ, և դրանց արդյունքն արդեն համակցված է: Օրինակ.
SELECT snum, sname FROM Salespeople WHERE city = "London" UNION SELECT cnum, cname FROM Customers WHERE city = "London";
UNION կետը միավորում է երկու կամ ավելիի արդյունքը SQL հարցումներմի շարք տողերի և սյունակների մեջ:
- DESC,ASC.
DESC-DESCEDENT Ցուցադրում է տվյալները հակառակ հերթականությամբ (այբբենական և թվային կարգով): Նախնականը ASC է:
Դե, այս ամենը մի խոսքով: MySQL-ն աջակցում է SQL Server-ի գրեթե բոլոր հիմնական հրամաններին, այնպես որ կարող եք ավելին կարդալ SELECT հրամանի մասին SQL լեզվի ցանկացած դասագրքում:
Հիմնական MySQL կոմունալ ծառայություններ.
MySQL բաշխումը ներառում է հետևյալ կոմունալ ծառայությունները.
mysqladmin
Սերվերը կառավարելու օգտակար ծրագիր: Կարող է օգտագործվել ադմինիստրատորի, ինչպես նաև որոշ օգտվողների կողմից, որոնց տրվել են որոշակի արտոնություններ, օրինակ. Reload_priv,Shutdown_priv,Process_privԵվ File_privԱյս հրամանը կարող է օգտագործվել տվյալների բազաներ ստեղծելու, օգտվողի գաղտնաբառը փոխելու համար (ադմինիստրատորը կարող է փոխել ցանկացած օգտվողի գաղտնաբառը, բայց սովորական օգտվողը կարող է փոխել միայն իր սեփականը), վերագործարկել և դադարեցնել սերվերը, դիտել սերվերում աշխատող գործընթացների ցանկը: . Mysqladmin-ն աջակցում է հետևյալ հրամաններին.
Գաղտնաբառ փոխելու համար mysqladmin-ի օգտագործման օրինակ.
mysqladmin -u bob գաղտնաբառը ելակի
Նկատի ունեցեք, որ եթե դուք օգտագործում եք mysqladmin գաղտնաբառը սահմանելու համար, ապա ձեզ հարկավոր չէ օգտագործել գաղտնաբառը() ֆունկցիան: Mysqladmin-ը հոգ է տանում գաղտնաբառի կոդավորման մասին:
mysqlaccess
Օգտագործվում է որոշակի տվյալների բազա մուտք գործելու համար օգտագործողի արտոնությունները ստուգելու համար: Ընդհանուր շարահյուսություն.
mysqlaccess ընտրանքներ
Օգտակար ծրագիր՝ օգտատերերի մուտքի իրավունքները ստուգելու համար, եթե նա ստանում է Access denied հաղորդագրություն, երբ փորձում է միանալ տվյալների շտեմարանին:
Ընտրանքներ:
mysql շոու
Օգտագործվում է ցույց տալու համար, թե ինչ տվյալների բազաներով է աշխատում սերվերը, ինչ աղյուսակներ է պարունակում յուրաքանչյուր տվյալների բազա և ինչ սյունակներ ունի յուրաքանչյուր աղյուսակ: Շարահյուսություն.
mysqlshow [ընտրանքներ]]]
Mysqlshow-ը կարող է օգտագործել հետևյալ տարբերակները.
Եթե մուտքագրեք mysqlshow առանց արգումենտների, բոլոր տվյալների բազաները կցուցադրվեն, եթե նշեք տվյալների բազայի անունը, ապա կցուցադրվեն բոլոր աղյուսակները:
mysqldump
Օգտագործվում է տվյալների բազայի բովանդակությունը թափելու համար (կրկնօրինակում): Դուք կարող եք գրել տվյալների բազայի բովանդակությունը ֆայլում: Շարահյուսություն.
mysqldump [ընտրանքներ]]]
Mysqldump-ը կարող է օգտագործել հետևյալ տարբերակները.
Իսամչք
Այս օգտակար ծրագրի միջոցով դուք կարող եք վերականգնել աղյուսակները, կառավարել աղյուսակները և հավաքել վիճակագրություն: Շարահյուսություն.
isamchk [-?adeiqrsvwzIV] [-k #] [-O xxxx=size] [-Si] [-Sr #] [-O keybuffer=#]
[-O readbuffer=#] [-O writebuffer=#] [-O sort key blocks=#] ֆայլ
Isamchk-ն օգտագործվում է աղյուսակների հետևողականությունը ստուգելու և խնդիրները լուծելու համար, որոնք կարող են առաջացնել: Եթե օգտվողը հաճախակի ջնջում և ավելացնում է տվյալներ աղյուսակներում, ապա այս օգտակար ծրագիրը շատ օգտակար կլինի: Isamchk-ը կարող է օգտագործել հետևյալ տարբերակները.
-r տարբերակն օգտագործելիս դուք պետք է դադարեցնեք mysqld-ը: Նախքան սկսելը, դուք պետք է փոխեք այն գրացուցակը, որտեղ գտնվում է ստուգման կամ վերանորոգման կարիք ունեցող աղյուսակը:
isamlog
Գործարքների մատյան, որն օգտագործվում է mysqld daemon-ի --log-isam=file_name տարբերակով: Ֆայլը գրանցում է տվյալների բազայում տեղի ունեցող բոլոր փոփոխությունները: Կարող է օգտագործվել տվյալների բազան վերականգնելու համար: Եթե կա տվյալների բազայի կրկնօրինակում մինչև isam մատյան ստեղծելը, ապա տեղեկատվությունը հեշտությամբ կարող է վերականգնվել: Եթե չկա պատճեն, ապա պետք է օգտագործվեն տվյալների բազայի սկզբից սկսած բոլոր տեղեկամատյանները:
Safe_mysqld
Սկրիպտ՝ Unix-ի տարբերակներում mysqld daemon-ը գործարկելու համար: Կատարվում է, երբ bootstrapհամակարգեր. Համար Ավտոմատ մեկնարկդուք պետք է մուտքագրեք համակարգի սկզբնավորման ֆայլերից մեկում:
Կայքի մշակում | | |
Win 32-ի համար ընտրեք բաշխումը. Windows (x86, 32-bit), Zip արխիվ.
Win 64-ի համար՝ Windows (x86, 64-bit), Zip արխիվ.
Ներբեռնման կոճակը սեղմելուց հետո կտեսնեք գրանցման ձևը, որը կարող եք բաց թողնել՝ սեղմելով ստորև նշված հղմանը. Ոչ, շնորհակալություն, պարզապես տարեք ինձ դեպի ներլցումներ.
2. Ստեղծեք տեղադրման թղթապանակ: Օրինակ . Եվ ապափաթեթավորեք արխիվի բովանդակությունը դրա մեջ, որպեսզի թղթապանակները աղբարկղ, տվյալներ, փաստաթղթեր և այլնտեղադրման թղթապանակի արմատում էին:
3. Եկեք անցնենք կազմաձևման ֆայլի (my.ini) ստեղծմանը: Որպես հիմք մենք վերցնում ենք բնորոշ ֆայլերից մեկը.
- my-small.ini - հարմար է նրանց համար, ովքեր ժամանակ առ ժամանակ օգտագործում են MySQL և չեն ցանկանում, որ սերվերը շատ ռեսուրսներ վերցնի:
- my-medium.ini-ն նաև ռեսուրսների համար հարմար կոնֆիգուրացիա է, բայց հարմար է նրանց համար, ովքեր օգտագործում են MySQL-ը շարունակական հիմունքներով ( լավ ընտրությունտնային վեբ սերվերի համար):
- my-large.ini և my-huge.ini համակարգերի համար են, որոնք օգտագործվում են որպես հատուկ MySQL սերվեր: Այնուամենայնիվ, my-large.ini-ն կարող է օգտագործվել տնային սերվերեթե Ձեզ անհրաժեշտ է լրացուցիչ MySQL կատարողականություն (512 ՄԲ RAM-ն այս օրերին շատ չէ):
- my-innodb-heavy-4G - 4 ԳԲ օպերատիվ հիշողությամբ հատուկ սերվերների համար և միայն InnoDB աղյուսակներ օգտագործող:
Այս օրինակում ես որպես հիմք ընտրեցի my-medium.ini-ն: Վերանվանեք այն my.ini և տեղադրեք տեղադրման թղթապանակի արմատում ( C:\Program Files\MySQL\MySQL Server 5.5).
Բացեք խմբագրման համար (սովորական Notepad-ում) և տողից անմիջապես հետո ավելացրեք երկու պարամետր.
basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data
Նկատի ունեցեք, որ ուղիներն օգտագործում են առաջ շեղեր (/) և ոչ թե ետ (\):
basedir-ը տեղադրման թղթապանակի ուղին է:
datadir - ուղի դեպի տվյալների թղթապանակ (որտեղ պահվում են բոլոր տվյալների բազաները): Երբեմն իմաստ ունի տվյալներ տեղադրել առանձին սկավառակի վրա՝ արդյունավետությունը բարելավելու կամ հուսալիությունը ապահովելու համար:
Ամեն դեպքում, ահա կազմաձևման ֆայլի մի հատված՝ փոփոխություններ կատարելուց հետո.
# MySQL սերվերը հիմնված է=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_8M_s
4. Հաջորդ քայլը ուղին ավելացնելն է C:\Program Files\MySQL\MySQL Server 5.5\binդեպի PATH միջավայրի փոփոխական՝ հրամանի տողից MySQL-ի գործարկումը հեշտացնելու համար: Դա անելու համար բացեք System Properties -> Լրացուցիչ ընտրանքներհամակարգեր -> Ընդլայնված ներդիրում, հենց ներքևում, կոճակը « Շրջակա միջավայրի փոփոխականներ…»: Բացվող պատուհանում ոլորեք համակարգի փոփոխականների միջով, մինչև գտնենք Ուղին: Նշեք այս տողը և սեղմեք «Խմբագրել...»: Տողի վերջում ավելացրեք ձեր ուղին՝ պահպանելով առկա պարամետրերը.
Նկատի ունեցեք, որ ուղիները բաժանված են ստորակետերով: Համոզվեք, որ ձեր ուղու սկզբում և վերջում ներառել եք ստորակետ:
5. Նախքան փորձնական գործարկում կատարելը, բացեք մուտքային պորտը TCP 3306 Windows firewall-ում.
Եթե դուք ունեք կամընտիր firewall տեղադրված ձեր համակարգում, դուք պետք է բացեք նաև TCP պորտը 3306 այդ firewall-ում մուտքային կապերի համար:
6. Այժմ մենք փորձնական վազք ենք կատարում։ Որպես ադմինիստրատոր աշխատող հրամանի տողում (սա պահանջվում է, եթե UAC-ը միացված է Seven-ում կամ Vista-ում), մենք կատարում ենք.
mysqld - կոնսոլ
Էկրանի վրա կցուցադրվեն մի քանի տողեր: Եթե գործարկումը հաջող է եղել, ապա վերջին տողը այսպիսի տեսք կունենա.
Տարբերակ՝ «5.5.9-log» վարդակից՝ «» միացք՝ 3306 MySQL Համայնքային Սերվեր (GPL)
Բաց թողեք այս պատուհանը և բացեք մեկ այլ հրամանի տող պատուհան, որում մենք մուտքագրում ենք.
MySQL -u արմատ
Եթե կապը հաջող էր, դուք կտեսնեք հրամանի տող. mysql>
Տեսնենք, թե ինչ հիմքեր ունենք.
ցույց տալ տվյալների բազաները;
SQL հարցման վերջում ստորակետը ՊԱՐՏԱԴԻՐ է:
Թիմի պատասխանը.
Այժմ մենք վերջապես համոզվեցինք, որ սերվերը աշխատում է:
7. Անցնելով հաջորդ քայլին, դուք պետք է սահմանեք MySQL ադմինիստրատորի գաղտնաբառը (արմատային օգտվող): Լռելյայն, գաղտնաբառը սահմանված չէ, և դա պետք է ուղղվի: Նույն MySQL պատուհանում մուտքագրեք հետևյալ հրամանները.
Օգտագործեք mysql UPDATE օգտվողի SET գաղտնաբառը = PASSWORD("your_password") WHERE user = "root";
Ստուգելով արդյունքը.
SELECT օգտվող, հյուրընկալող, գաղտնաբառ FROM օգտվողից;
Ինչպես տեսնում եք սքրինշոթում, գաղտնաբառի սյունակը լրացված է, ինչը նշանակում է, որ գաղտնաբառը սահմանվել է:
Դուրս գալուց առաջ գործարկեք հրամանը.
FLUSH ԱՐՏՈՆՈՒԹՅՈՒՆՆԵՐ;
Այժմ, երբ միանում եք, դուք պետք է մուտքագրեք գաղտնաբառ: Դա անելու համար օգտագործեք -p անջատիչը.
MySQL -u արմատ -p
Ավարտելու համար MySQL-ն աշխատում էմենք իրականացնում ենք.
mysqladmin -u root -p անջատում
8. Վերջին քայլը MySQL-ը սկսելն է որպես համակարգի սպասարկում Windows.
Համոզվեք, որ համակարգում չկան ակտիվ MySQL գործընթացներ:
Հրամանի տողում, որն աշխատում է որպես ադմինիստրատոր, գործարկեք՝
«C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld» - տեղադրել
Mysqld-ի ուղին պետք է ամբողջությամբ նշված լինի (նույնիսկ եթե այն գտնվում է PATH-ում):
Ծառայությունը սկսելու համար բացեք «Համակարգչային կառավարում» և ձեռքով գործարկեք MySQL ծառայությունը.
Կամ ավելի հեշտ հրամանի տողի միջոցով.
net start mysql
Ծառայությունը հեռացնելու համար նախ դադարեցրեք այն.
net stop mysql
և կատարել՝
«C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld» - հեռացնել