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 տվյալների բազայի և արտոնությունների աղյուսակներ:

Այսպիսով, դուք հաջողությամբ մուտք եք գործել mysql տվյալների բազա, որն օգտագործվում է սերվերը կառավարելու համար: Ի՞նչ է գտնվում այստեղ: Եվ այստեղ կա 5 աղյուսակ, որոնք ոչնչով չեն տարբերվում տվյալների բազայի այլ աղյուսակներից, բացառությամբ, որ այս աղյուսակներն օգտագործվում են մուտքի հնարավորություն ապահովելու համար: տվյալների բազաների տվյալները և դրանցում առկա աղյուսակները օգտվողներին: Դիտարկենք դրանցից յուրաքանչյուրը:

Մուտքագրեք հետևյալ հրամանը, որը ցույց կտա աղյուսակները mysql տվյալների բազայում.

mysql>ցուցադրել աղյուսակները;
tables_in_mysql
columns_priv
դբ
հյուրընկալող
tables_priv
օգտագործող

Եկեք արագ նայենք աղյուսակներից յուրաքանչյուրի գործառույթներին.

  • օգտագործող
    Նշում է, թե արդյոք օգտվողին, որը փորձում է միանալ սերվերին, թույլատրվում է դա անել: Պարունակում է օգտվողի անունը, գաղտնաբառը և արտոնությունները: Եթե մուտքագրեք հրամանը ցույց տալ սյունակները օգտվողից;, ապա ստանում ենք հետևյալը.
    դաշտտիպԴատարկբանալիԿանխադրվածԼրացուցիչ
    Հյուրընկալողchar (60) PRI
    օգտագործողchar (16) PRI
    Գաղտնաբառchar (8)
    select_privchar (1) Ն
    Insert_privchar (1) Ն
    Update_privchar (1) Ն
    delete_privchar (1) Ն
    Create_privchar (1) Ն
    Drop_privchar (1) Ն
    Reload_privchar (1) Ն
    Shutdown_privchar (1) Ն
    process_privchar (1) Ն
    File_privchar (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_privchar (1) Ն
    Insert_privchar (1) Ն
    Update_privchar (1) Ն
    delete_privchar (1) Ն
    Create_privchar (1) Ն
    Drop_privchar (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_privchar (1) Ն
    Insert_privchar (1) Ն
    Update_privchar (1) Ն
    delete_privchar (1) Ն
    Create_privchar (1) Ն
    Drop_privchar (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_privDB, աղյուսակներ, ինդեքսներ
անկում Drop_privDB կամ աղյուսակներ
դրամաշնորհ Grant_privDB կամ աղյուսակներ
հղումներ Հղումներ_privDB կամ աղյուսակներ
վերաբեռնել 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)Հաստատուն երկարությամբ լար (1DATEՊահպանում է ամսաթվի տվյալները: Օգտագործում է «YYYY-MM-DD» ձևաչափը: Կարող է փոփոխվել որպես տող կամ թիվ: YYYY-MM-DD ("- " կարող է լինել ՑԱՆԿԱՑԱԾ ոչ թվանշան) YY-MM-DD ("-" կարող է լինել ՑԱՆԿԱՑԱԾ ոչ թվանշան) YYMMDD YYMM Այս տվյալների տիպի միջակայքը 0000-00-00-ից 9999-12 է: -31. Ի տարբերություն TIMESTAMP-ի, DATE-ն ընդունում է տարիները որպես երկնիշ 0000-ից մինչև 0099: Սա շատ դեպքերում շատ օգտակար չէ: Օգտագործեք քառանիշ տարիներ DATE դաշտերում: DATE տեսակը 4 բայթ է:
DATETIMEDATE և 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_idemp_nameemp_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 աղյուսակների գրառումները սխալ են: Հաշվի առեք սա՝ պարզ օրինակ:

օգտագործող
Հյուրընկալող%.domain.com
օգտագործողՋերի
Գաղտնաբառ378b243hk8796
select_privՅ
Դբ
Հյուրընկալող%.domain.com
Դբտվյալներ 1
օգտագործողՋերի
Insert_privՅ
select_privՅ
Update_privՅ
delete_privՅ
Աղյուսակները պարունակում են տեղեկություններ օգտատիրոջ jerry-ի համար: Ինչպես տեսնում եք, jerry-ն կարող է ցանց մուտք գործել domain.com տիրույթի ցանկացած համակարգչից՝ մուտքագրելով իր անունը և գաղտնաբառը: Սերվերը կարդում է User աղյուսակը, որոշում է անունը և գաղտնաբառը համընկնում: , այնուհետև Db աղյուսակը, որը ցույց է տալիս, թե որ տվյալների բազաների մուտքն է թույլատրվում: Եթե ամեն ինչ ճիշտ է, Ջերին մուտք է ստանում data1 տվյալների բազա: Այս տվյալների բազայում Jerry-ն կարող է դիտել տեղեկատվությունը աղյուսակներում, տեղադրել նոր տվյալներ այնտեղ, փոխել տողերի բովանդակությունը և ջնջել տողերը: Եթե նա ցանկանում է ստեղծել նոր աղյուսակ, նա կստանա Access denied հաղորդագրություն, քանի որ այն չունի աղյուսակներ ստեղծելու թույլտվություն:

Շատ կարևոր նրբերանգ. 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» - հեռացնել