Manuálna inštalácia MySQL na Windows. Základy správy MySQL Používanie príkazového riadku Zastavenie servera mysql z príkazového riadku




Pre Win 32 vyberte distribúciu: Windows (x86, 32-bit), Zip-archív.

Pre Win 64: Windows (x86, 64-bit), Zip-archív.

Po kliknutí na tlačidlo Stiahnuť sa vám zobrazí registračný formulár, ktorý môžete preskočiť kliknutím na odkaz nižšie - Nie, ďakujem, prejdite na sťahovanie.

2. Vytvorte inštalačný priečinok. Napríklad . A rozbaľte do nej obsah archívu tak, aby zložky kôš, údaje, dokumenty a iné boli v koreňovom adresári inštalačného priečinka.

3. Prejdime k vytvoreniu konfiguračného súboru (my.ini). Ako základ berieme jeden zo štandardných súborov:

  • my-small.ini – vhodné pre tých, ktorí z času na čas používajú MySQL a nechcú, aby server zaberal veľa zdrojov.
  • my-medium.ini je tiež konfigurácia s nízkymi zdrojmi, ale je vhodná pre tých, ktorí používajú MySQL pravidelne (dobrá voľba pre domáci webový server).
  • my-large.ini a my-huge.ini – pre systémy používané ako dedikovaný server MySQL. My-large.ini však možno použiť pre domáci server, ak potrebujete dodatočný výkon MySQL (512 MB RAM nie je v dnešnej dobe tak veľa).
  • my-innodb-heavy-4G – pre dedikované servery s minimálne 4 GB RAM a používajúce iba tabuľky InnoDB.

V tomto príklade som ako základ zvolil my-medium.ini. Premenujte ho na my.ini a umiestnite ho do koreňového adresára inštalačného priečinka ( C:\Program Files\MySQL\MySQL Server 5.5).

Otvorte na úpravu (v bežnom programe Poznámkový blok) a hneď za riadok pridajte dva parametre:

Založené=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Všimnite si, že cesty používajú lomky (/) a nie spätné lomky (\).

basedir je cesta k inštalačnému priečinku.

datadir – cesta k priečinku s údajmi (kde sú uložené všetky databázy). Niekedy má zmysel umiestniť údaje na samostatný disk, aby sa zlepšil výkon alebo zabezpečila spoľahlivosť.

Pre každý prípad tu je fragment konfiguračného súboru po vykonaní zmien:

# The MySQL server basedir=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 key_buffer_size = 16 miliónov max_allowed_packet = 1 milión table_open_cache = 64 sort_buffer_size = 512 kB net_buffer_length = 8 kB read_buffer_size = 256 kB read_rnd_buffer_size = 512 kB InnoDB_sort_buffer_size = 8 miliónov

4. Ďalším krokom je pridanie cesta C:\Program Files\MySQL\MySQL Server 5.5\bin do premennej prostredia PATH, aby sa uľahčilo spustenie MySQL z príkazového riadku. Ak to chcete urobiť, otvorte Vlastnosti systému -> Ďalšie nastavenia systému -> na karte Rozšírené úplne dole tlačidlo „Premenné prostredia...“. V okne, ktoré sa otvorí, rolujte cez systémové premenné, až kým nenájdeme Path. Vyberte tento riadok a kliknite na „Zmeniť...“. Na koniec riadku pridáme našu cestu so zachovaním existujúcich parametrov:

Všimnite si, že cesty sú oddelené bodkočiarkou. Uistite sa, že na začiatku a na konci vašej cesty je bodkočiarka.

5. Pred vykonaním skúšobnej prevádzky otvorte prichádzajúci port TCP 3306 v bráne Windows Firewall:


Ak máte vo svojom systéme nainštalovaný dodatočný firewall, musíte tiež otvoriť port TCP 3306 pre prichádzajúce pripojenia.

6. Teraz vykonáme skúšobnú prevádzku. V príkazovom riadku spustenom ako správca (je to potrebné, ak je UAC povolený na Seven alebo Vista), spustite:

Mysqld --konzola

Na obrazovke sa zobrazí niekoľko riadkov. Ak bolo spustenie úspešné, posledný riadok bude vyzerať asi takto:

Verzia: "5.5.9-log" socket: "" port: 3306 MySQL Community Server (GPL)

Nechajte toto okno otvorené a otvorte ďalšie okno príkazového riadku, do ktorého zadáme:

Mysql -u root

Ak bolo pripojenie úspešné, zobrazí sa príkazový riadok: mysql>

Pozrime sa, aké databázy máme:

Zobraziť databázy;

Bodkočiarka na konci SQL dotazu je POVINNÁ!

Odpoveď tímu:


Teraz sme konečne presvedčení, že server funguje.

7. Prejdime k ďalšiemu kroku – je potrebné nastaviť heslo správcu MySQL (užívateľ root). V predvolenom nastavení nie je nastavené žiadne heslo a toto je potrebné opraviť. V tom istom okne MySQL zadajte nasledujúce príkazy:

Použiť mysql UPDATE user SET heslo = PASSWORD("vaše_heslo") WHERE user = "root";

Skontrolujeme výsledok:

SELECT užívateľa, hostiteľ, heslo FROM užívateľa;

Ako môžete vidieť na snímke obrazovky, stĺpec hesla je vyplnený, čo znamená, že heslo bolo nastavené.

Pred ukončením spustite príkaz:

SPLACHOVAŤ PRIVILEGIÁ;

Teraz pri pripájaní musíte zadať heslo. Ak to chcete urobiť, použite prepínač -p:

Mysql -u root -p

Ak chcete vypnúť MySQL, spustite:

Mysqladmin -u root -p vypnutie

8. Posledným krokom je spustenie MySQL ako systémovej služby Windows.

Uistite sa, že v systéme nie sú žiadne aktívne procesy MySQL.

V príkazovom riadku spustenom ako správca spustite:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" – inštalácia

Cesta k mysqld musí byť zadaná celá (aj keď je uvedená v PATH)!

Ak chcete spustiť službu, otvorte „Správa počítača“ a manuálne spustite službu MySQL:


Alebo jednoduchšie cez príkazový riadok:

Čistý štart mysql

Ak chcete odstrániť službu, najskôr ju zastavte:

Net stop mysql

a vykonať:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --odstrániť

Moji priatelia sa ma často pýtajú na určité otázky týkajúce sa správy a ja som si povedal, prečo namiesto 100-krát vysvetľovania toho istého nenapísať na stránku takéto články a poznámky? Okrem toho je to vynikajúca príležitosť, ak je to potrebné, použiť takúto poznámku sami, pretože sami viete, že niekedy nie je možné udržať všetko vo svojej hlave a tak či onak sa niekedy musíte obrátiť na referenčnú knihu, tak nech sa takou knihou stane jedna zo sekcií tejto stránky. Dnes budeme hovoriť o tom, ako pracovať s MySQL DBMS z príkazového riadku, áno, niekto povie - „Ktorý? Koniec koncov, existuje phpMyAdmin,“ odpovedám - prečo plytvať vzácnymi zdrojmi servera inštaláciou najrôznejších svinstiev ako WebMin, phpMyAdmin atď., ak sa to isté dá ľahko urobiť pomocou spoľahlivých, osvedčených nástrojov. Nastavenie z terminálu cez tunel SSH je naša voľba!

Nuž, začnime. K serveru sa pripájame cez SSH, napríklad cez známy PuTTY (A Free Telnet/SSH Client). Teraz prejdime k popisu príkazov.

Prihláste sa na server MySQL pomocou programu mysql:

mysql -u root -h localhost -p

Voľba -u určuje užívateľa, ku ktorému sa má prihlásiť. Voľba -h určuje hostiteľa. Toto je zvyčajne localhost, ak nastavujete server, ktorý nie je vzdialený. Nakoniec -p povie klientskemu programu mysql, že na prístup k databáze bude zadané heslo. Všimnite si výzvu mysql>. Tu budete zadávať všetky svoje príkazy. Teraz, keď sme v prostredí mysql ako užívateľ root, môžeme začať nastavovať databázu.

Prihlásili sme sa a na obrazovke sa objavila výzva mysql. Najprv sa pozrime na zoznam existujúcich databáz. Ak to chcete urobiť, zadajte príkaz SHOW DATABASES.

Odpoveď objasňuje, že príkaz bol vykonaný bez akýchkoľvek chýb. V tomto prípade sa zmenil jeden riadok. Toto sa vzťahuje na hlavnú databázu mysql, ktorá obsahuje zoznam všetkých databáz. Nemusíte sa však príliš obávať drobných detailov. Posledné číslo označuje čas vykonania požiadavky. Vytvorenie databázy môžeme overiť opätovným spustením príkazu SHOW DATABASES.

Aby sme mohli začať vytvárať tabuľky v novej testovacej databáze, budeme ju musieť nastaviť ako aktuálnu. Ak to chcete urobiť, použite príkaz USE. Parameter tohto príkazu špecifikuje názov databázy, ktorá musí byť aktuálna. Aktuálnu databázu môžete nainštalovať aj na príkazový riadok zadaním jej názvu za parameter -D. Poďme ďalej a prepnime sa na testovaciu databázu.
Prepínanie databázy:

USE test;

Oprávnenia v MySQL

Udelenie privilégií tímom GRANT.
Privilégiá určujú schopnosť používateľa pristupovať k databázam, tabuľkám... takmer ku všetkému. V súčasnosti má podľa týchto oprávnení prístup k testovacej databáze iba koreňový superužívateľ MySQL. Vytvorme ďalšieho používateľa, napríklad admina, ktorý bude pristupovať k testovacej databáze a pracovať s informáciami z nej. Ale skôr ako začneme, pozrime sa na trochu zjednodušený formát príkazu GRANT.

Poznámka: Príkaz GRANT sa považuje za spôsob vytvorenia používateľa. Neskoršie verzie MySQL však obsahujú aj funkciu CREATE_USER, aj keď sa stále preferuje GRANT.
Teraz potrebujeme privilégiá, ktoré je možné prideliť. Pomocou všetkých vyššie uvedených možností môžete nastaviť nasledujúce privilégiá:

Poznámka Poznámka: Ak používate MySQL na komunikáciu s webovou aplikáciou, privilégiá CREATE, SELECT, INSERT vysvetlené tu, ako aj privilégiá DELETE a UPDATE (popísané v príručke MySQL, časť GRANT a REVOKE Syntax) sú jediné, ktoré bude pravdepodobne potrebné. Mnoho ľudí robí tú chybu, že sa vzdávajú všetkých privilégií, keď to v skutočnosti nie je potrebné. Informujte sa u vývojárov aplikácií, či takéto povolenia skutočne spôsobia prevádzkové problémy.

Vytvorenie administrátora:

Používatelia sú teda vytvorení; Teraz ich poďme otestovať. Najprv ukončíme mysql napísaním quit na výzvu:

Možnosti sú vysvetlené v časti príkazu GRANT. Teraz používateľovi zakážeme akýkoľvek typ prístupu. Povedzme, že zistíme, že účet správcu spôsobuje bezpečnostné problémy. Rozhodneme sa zrušiť všetky práva. Prihlásime sa ako root a urobíme potrebné.
Zrušenie povolení pre správcu:

REVOKE ALL ON test.* OD "admin" @"localhost" ;

Poznámka: V tomto prípade je užívateľský prístup jednoduchý, takže zrušenie práv na jednu databázu nie je problém. Vo všeobecnosti však pravdepodobne budete chcieť použiť *.* namiesto test.* na zrušenie prístupu používateľa do všetkých ostatných databáz súčasne.

Teraz sa pozrime na to, ako úplne odstrániť účet pomocou príkazu DELETE a pozrieme sa na tabuľku používateľov MySQL.

Odstránenie účtov pomocou príkazu VYMAZAŤ.
Tabuľka používateľov MySQL je zoznam používateľov a ich informácií. Uistite sa, že ste prihlásení ako root. Použite hlavnú databázu MySQL.

Použitie hlavnej databázy mysql:

Tabuľka používateľov je to, čo potrebujete. Má 30 rôznych polí a je ťažko čitateľný. Na uľahčenie čítania používame tretiu formu príkazu SELECT. Polia, ktoré hľadáte, sú Hostiteľ a Používateľ.
Vyhľadanie administrátora v tabuľke používateľov:

Teraz, keď máme informácie, môžeme sa zbaviť používateľa admin. To sa vykonáva pomocou príkazu DELETE; tu je jeho syntax:

Možno ste si všimli, že formát DELETE je trochu podobný formátu SELECT. Zadajte pole Používateľ a hodnotu správcu. Týmto sa odstráni záznam z tabuľky používateľov, kde je používateľ správcom, čím sa vymaže náš účet. Poďme to spraviť:
Odstránenie administrátora:

Na aktualizáciu povolení je potrebný príkaz FLUSH PRIVILEGES.

To je na dnes všetko. Súhlasíte, je to jednoduché! ;)

Pekný deň kolegovia :)

Áno, presne kolegovia, pretože pre obyčajného smrteľníka je nepravdepodobné, že by príkazový riadok MySQL (alebo MySQL Shell, ako ho vývojári radi nazývali), ako aj práca s MySQL v konzole, užitočný.

Aby bola táto téma zaujímavá, musíte byť minimálne začínajúci správca systému, ktorý zásadne nepoužíva phpMyAdmin a iné rozhrania.

Osobne radšej používam phpMyAdmin ako hlavný na prácu s MySQL, pretože... Som od prírody vizuálny človek. V praxi však niekedy nastávajú situácie, keď je znalosť príkazového riadku MySQL a schopnosť pracovať s MySQL v konzole servera jednoducho nevyhnutná.

Momentálne ich mám tri:

  1. Prvýkrát som sa stretol s prácou v konzole MySQL, keď som potreboval importovať veľký výpis databázy. Nebolo načítané úplne cez phpMyAdmin, pretože... spadol niekde uprostred z dôvodu časového limitu, napriek zmene nastavení času vykonávania operácie a veľkosti sťahovaných súborov. V zásade bolo možné vybrať potrebné hodnoty, ale zdalo sa mi to ako príliš dlhý proces.
  2. Pri ďalšej práci s MySQL cez príkazový riadok bolo vypnutie kontroly cudzích kľúčov, keď som potreboval vymazať údaje z tabuľky, ktorá bola pomocou kľúčov prepojená s ostatnými. Len som nemohol nájsť, ako to urobiť v phpMyAdmin.
  3. Seriózne spoločnosti používajú na prácu s MySQL iba konzolu bez akýchkoľvek phpMyAdminov. Neviem presne prečo, ale znalí ľudia hovorili, že to má niečo spoločné s bezpečnosťou. Výsledkom bolo, že každý musel pracovať s príkazovým riadkom MySQL, vrátane mňa :)

Ale opäť, práca s MySQL v konzole a príkazovom riadku je celkom vhodná na každodenné použitie. Všetky známe vizuálne programy na prácu s databázami stále fungujú na základe príkazov konzoly MySQL. Preto ako chcete :)

Spustenie konzoly na inom OS

Keďže budem demonštrovať, ako používať príkazový riadok MySQL v konzole servera, bolo by dobré začať najskôr s ním.

Akcia je jednoduchá, mnohým známa, na čo stačí znalosť „klávesových skratiek“.

Spustenie konzoly v systéme Windows:

  • Win + R na otvorenie príkazového riadka systému Windows s právami správcu;
  • Zadajte príkaz cmd
  • Kliknite Zadajte na klávesnici

Spustenie konzoly v distribúciách Linuxu (terminál): v Ubuntu, s ktorým som pracoval, stačí kombinácia systémových kláves Ctrl+Alt+T. Nemôžem povedať nič o iných operačných systémoch založených na Linuxe.

Spustenie konzoly v systéme MacOS: Sám som to neurobil, pretože... Mac ešte nemám a je nepravdepodobné, že ho dostanem, pretože ho nepotrebujem, ale pokiaľ sa mi podarilo zistiť, v tomto OS neexistujú žiadne „klávesové skratky“ na volanie terminálu. Ak ste teda používateľom produktov Apple, tak konzolu spustite cez rozhranie OS, našťastie je na internete veľa návodov.

Je trochu trápne čo i len zverejniť takéto informácie v prípade, že nejaký profesionálny správca systému s bohatými skúsenosťami náhodou narazí na tento článok, pretože pomyslí si: “Autor považuje svojich čitateľov za programátorov, no zároveň učí, ako spustiť konzolu... Nejaké psycho :-).”

Áno, celkom logické :) Ale beriem len do úvahy situáciu, že spolu s profesionálnymi vývojármi sa sem môžu dostať aj začiatočníci. Preto sa snažím, aby informácie boli úplné a dostupné pre všetky kategórie používateľov, ako som už spomenul.

Základné príkazy konzoly MySQL

Takže v prvom rade potrebujeme prístup k príkazovému riadku MySQL v konzole. Ak to chcete urobiť, otvorte konzolu servera a ak máte MySQL nainštalovanú globálne ako službu, na „skontrolovanie pripojenia“ napíšeme nasledovné:

Mysql -V

Príkaz konzoly mysql nám umožňuje spustiť nástroj s rovnakým názvom, ktorým je príkazový riadok MySQL.

To nám umožní zistiť verziu MySQL nainštalovanú v počítači a uistiť sa, že je vôbec nainštalovaná ako služba. Ak je to tak, potom v konzole uvidíte niečo ako nasledujúci text: .

Áno, nie som „šialený kódovač“, pretože používam Windows :) Ale o to nejde. Na systémoch Unix bude postup rovnaký.

Ak zrazu nie je na vašom počítači globálne nainštalované MySQL alebo potrebujete pracovať s niekoľkými verziami MySQL, v ktorých sú iba adresáre so súbormi a knižnicami MySQL, spustenie MySQL cez konzolu bude vyzerať takto.

V konzole prejdite do adresára, kde sa nachádza spustiteľný súbor MySQL (v systéme Windows, aspoň je to mysql.exe) pomocou nasledujúceho príkazu:

Cd C:\OpenServer\modules\database\MySQL-5.7-x64\bin

Prirodzene, vaša cesta k distribúcii môže byť iná. Ako príklad som sa rozhodol spustiť jednu z verzií MySQL, ktoré sú súčasťou OpenServera.

A spúšťame MySQL a priebežne kontrolujeme jeho verziu:

Mysql.exe -V

V dôsledku toho sa v konzole mala zobraziť správa podobná prvému prípadu mysql Ver 14.14 Distrib 5.7.16, pre Win64 (x86_64).

To je všetko, vyriešili sme spustenie MySQL z príkazového riadku cez konzolu servera, teraz sa pripojíme priamo k serveru MySQL.

Pripojenie k serveru MySQL v konzole

Server MySQL nemusí byť nevyhnutne na tom istom počítači, na ktorom sa k nemu pokúšate dostať v konzole. Preto, aby bolo možné pripojiť sa k vzdialenému serveru MySQL cez konzolu, obslužný program mysql má veľa parametrov, pomocou ktorých môžete zadať potrebné nastavenia.

Aby sme mohli spustiť príkazový riadok MySQL v konzole, musíme do konzoly servera napísať nasledovné:

V tomto prípade sa však zobrazí nasledujúca chyba: CHYBA 1045 (28000): Prístup odmietnutý pre používateľa „ODBC“@’localhost“ (pomocou hesla: NIE). Takto vyzerá chybové hlásenie v mojom systéme Windows. Ak používate Linux, potom namiesto ODBC bude meno vášho systémového používateľa, pod ktorým vykonávate akcie v systéme.

Všetko je to preto, že pri pripájaní k serveru MySQL konzola štandardne používa používateľa ODBC v systéme Windows bez hesla a používateľa systému v systéme Linux s rovnakým heslom. Predvolený hostiteľ je localhost, t.j. Tento používateľ sa môže pripojiť iba z lokálneho počítača.

Preto máte dve možnosti: buď použiť iného používateľa na prihlásenie do príkazového riadku MySQL, alebo vytvoriť používateľa MySQL s požadovaným účtom. Ale pri druhej metóde sa stále nezaobídeme bez prvej :) Preto sa najprv pripojíme k serveru MySQL pod štandardným používateľom koreň, ktorý sa vytvorí pri inštalácii MySQL do počítača a pre ktorý je štandardne povolený prístup z localhost:

Mysql -u root -p

Po výzve na zadanie hesla jednoducho stlačte Enter (ak ste ho nezadali, samozrejme, pri inštalácii MySQL). Potom budete pripojení k serveru MySQL, bude vám pridelené ID pripojenia a budete mať prístup k príkazovému riadku MySQL.

Ak sa chcete pripojiť k serveru MySQL, ktorý má špecifický názov hostiteľa alebo IP, alebo sa chcete prihlásiť ako iný používateľ, použite príkaz v nasledujúcom formáte:

Mysql -u user_name -p user_password -h MySQL_server_host_or_IP

Namiesto cyrilických znakov s podčiarkovníkom je samozrejme potrebné zadať údaje v latinke. Mimochodom, ak chcete, môžete tento príkaz napísať v trochu inom formáte:

Mysql --user=user_name --password=user_password --host=host_or_IP_of_MySQL_server

Ak z nejakého dôvodu nechcete, aby sa vaše heslo pripojenia k MySQL zobrazovalo v konzole (čo je v skutočnosti správne), môžete použiť nasledujúci príkaz:

Mysql -u meno_uzivatela -h host_or_IP_MySQL_server -p

Keďže heslo nie je výslovne uvedené, v ďalšom kroku budete vyzvaní na jeho zadanie. Navyše vami zadané znaky sa nezobrazia ani vo forme hviezdičiek (zástupných znakov), namiesto toho bude len prázdny riadok.

Okrem špecifikovaných nastavení pripojenia je možné použiť nasledujúce parametre, ktorých hodnoty budú špecifikované podobným spôsobom, ako je uvedené vyššie:

  1. --port alebo -P - na určenie portu pre pripojenie k serveru MySQL;
  2. —protocol — protokol, cez ktorý sa vytvorí spojenie (možné možnosti: TCP pre Windows a Linux, SOCKET pre Linux, PIPE a MEMORY pre Windows);
  3. --socket alebo -S - tento parameter je užitočný, ak sa chcete pripojiť cez zásuvky, preto bude hodnota parametra socket;
  4. --pipe alebo -W - parameter je potrebný, ak chcete pre pripojenia použiť pomenované „potrubia“ alebo „potrubia“;
  5. --shared-memory-base-name - tento parameter bude užitočný pre pripojenia MEMORY cez zdieľanú pamäť v systéme Windows;

Je zrejmé, že zoznam všetkých parametrov pre pripojenie k serveru MySQL nie je obmedzený na toto. V skutočnosti je ich oveľa viac.

Ak vám z nejakého dôvodu nevyhovuje štandardná možnosť označujúca hostiteľa, používateľa a heslo, potom na zistenie úplného zoznamu parametrov pripojenia budú pre vás užitočné nasledujúce informácie - https://dev.mysql.com/doc/ refman/5.7/en/connecting.html

Ako vytvoriť databázu v konzole MySQL

Po pripojení k serveru MySQL a spustení príkazového riadku MySQL je čas začať životný cyklus našej webovej databázy, ktorý začína jej vytvorením. Ak chcete vytvoriť databázu MySQL cez príkazový riadok, musíte zadať nasledujúci príkaz:

CREATE DATABASE názov_databázy;

Rovnakú akciu je možné vykonať pomocou špeciálneho nástroja MySQL mysqladmin. Beží izolovane od príkazového riadku MySQL, t.j. Ak ju chcete použiť, budete ju musieť ukončiť alebo otvoriť novú konzolu servera.

A potom zavolajte nasledujúci príkaz:

mysqladmin vytvoriť názov_databázy;

Mimochodom, pomocou utility mysqladmin môžete nielen vytvárať a mazať databázy bez prihlásenia sa do MySQL konzoly, ale aj obsluhovať konfiguráciu servera, procesy MySQL, spravovať replikácie, pingovať servery a robiť mnoho ďalších zaujímavých vecí.

Ako vytvoriť používateľa MySQL na príkazovom riadku

Nie často, ale niekedy je potrebné vytvoriť nového používateľa MySQL. Navyše v režime konzoly.

Na príkazovom riadku MySQL sa to robí takto:

VYTVORIŤ POUŽÍVATEĽA "user_name"@"host_or_machine_IP" IDENTIFIKOVANÉHO BY "user_password";

Používateľ bol vytvorený. Parameter host_or_IP_machine znamená, že pri vytváraní používateľa musíte zadať IP adresu, z ktorej sa môže pripojiť k serveru, alebo názov hostiteľa (vhodný je názov domény pracovného stroja v sieti).

Mimochodom, pri zadávaní hostiteľa na pripojenie k serveru MySQL môžete použiť symbol percent - % , čo znamená, že vytvorený používateľ sa môže pripojiť k serveru MySQL z ľubovoľnej IP adresy alebo hostiteľa.

Malo by sa vziať do úvahy, že v tomto prípade nie je localhost zahrnutý v zozname adries špecifikovaných pomocou %, pretože localhost označuje pripojenie cez soket UNIX namiesto štandardného TCP/IP. Tie. Ak sa vytvorený používateľ MySQL pripojí k serveru nie pomocou soketov, ale pomocou iného protokolu špecifikovaného pri pripájaní k serveru MySQL v konzole, potom bude musieť vytvoriť dva používateľské účty:

VYTVORIŤ POUŽÍVATEĽA "username"@"%" IDENTIFIKOVANÉHO PODĽA "hesla"; VYTVORIŤ POUŽÍVATEĽA "username"@"localhost" IDENTIFIKOVANÉHO PODĽA "hesla";

Zistili sme, ako vytvoriť používateľa MySQL v konzole. Teraz nastavíme užívateľské práva na vykonávanie akýchkoľvek akcií s našou novovytvorenou databázou pomocou nasledujúceho príkazu:

UDELTE VŠETKY PRIVILEGIÁ PRE database_name.* TO "user_name"@"host_or_machine_IP";

Možnosť VŠETKY, ako ste pochopili, iba označuje, že používateľovi sú povolené akékoľvek akcie s konkrétnou databázou. Kompletný zoznam práv, ktoré môžu byť používateľom udelené pomocou príkazu GRANT, nájdete tu (hoci popis parametrov je v angličtine) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Mimochodom, môžete použiť niekoľko parametrov privilégií a špecifikovať ich pri volaní príkazu oddelených čiarkami.

Ak chcete vytvoriť superužívateľa, t.j. má globálne privilégiá na vykonávanie rôznych akcií so všetkými databázami na serveri, potom použite nasledujúce volanie príkazu:

GRANT ALL ON *.* TO "user_name"@"host_or_machine_IP";

Mimochodom, po nastavení privilégií by bolo dobré vymazať vyrovnávaciu pamäť servera MySQL. Ak ich zmeníte, nezabudnite to urobiť aj zavolaním nasledujúceho príkazu:

SPLACHOVAŤ PRIVILEGIÁ;

A ak chcete zmeniť práva používateľa, najprv pomocou nasledujúceho príkazu resetujte všetky práva:

ZRUŠTE VŠETKY PRIVILEGIÁ PRE *.* OD "user_name"@"host_or_machine_IP";

A potom nainštalovať tie, ktoré potrebuje používať GRANT, ako je opísané vyššie.

Ak v budúcnosti budete potrebovať zmeniť heslo používateľa MySQL, potom stačí spustiť nasledujúce príkazy v prostredí MySQL:

SET PASSWORD FOR "user_name"@"host_or_machine_IP" = PASSWORD("new_password"); SPLACHOVAŤ PRIVILEGIÁ;

Resetovanie vyrovnávacej pamäte privilégií servera MySQL je potrebné na rovnaký účel ako pri zmene práv - bez tejto akcie sa zmena hesla používateľa MySQL nemusí započítať, takže nebuďte leniví ju použiť :)

Mimochodom, internet je plný príkladov použitia nasledujúceho príkazu na obnovenie hesla používateľa MySQL:

UPDATE mysql.user SET Heslo=HESLO("heslo") WHERE User="username";

Táto možnosť mi však na MySQL 5.7 nefungovala, čo viedlo k chybe ERROR 1054 (42S22): Neznámy stĺpec „Heslo“ v „zozname polí“. Dôvodom sa ukázala absencia poľa Heslo v tabuľke mysql.user.

Z čoho môžeme predpokladať, že táto možnosť funguje len pre staršie verzie MySQL, kde toto pole v tabuľke používateľov existovalo. Preto pre istotu použite moju prvú možnosť, pokiaľ, samozrejme, nebudete nútení pracovať s predpotopným softvérom bez možnosti aktualizácie verzií :)

Tým sa dokončí vytvorenie nového používateľa MySQL a preskúmanie akcií s jeho právami a heslami. Poďme ďalej.

Výber databázy pri práci s MySQL cez príkazový riadok

Teraz, po vytvorení používateľa v MySQL Shell a pridelení práv na prácu s databázou, musíme vybrať práve túto databázu, aby sme mohli operovať so samotnou databázou a údajmi v nej uloženými.

Ak to chcete urobiť, použite nasledujúci príkaz v konzole MySQL:

USE názov_databázy;

Ak všetko prebehlo dobre, v konzole sa zobrazí správa Databáza zmenená, čo bude signalizovať, že sme sa cez konzolu prihlásili do databázy MySQL. Mimochodom, pri pripájaní k serveru MySQL môžete na začiatku určiť databázu, s ktorou budete musieť pracovať. Ak to chcete urobiť, musíte v konzole servera zadať nasledujúci príkaz:

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP --database=database_name

Alebo to isté, iba požiadať o heslo používateľa MySQL:

mysql -u user_name -h host_or_IP_MySQL_server_database_name -p

To je všetko. Myslím, že teraz nebudete mať žiadne problémy s pripojením k databáze MySQL cez konzolu :)

Práca s tabuľkami MySQL cez konzolu MySQL

Vytvorili sme teda databázu MySQL cez konzolu. Teraz by bolo fajn naučiť sa s tým pracovať v prípade, že príkazový riadok MySQL bude jediným prostriedkom na prístup k údajom uloženým na serveri (ako to bolo v mojom prípade, o ktorom som hovoril na začiatku článok).

Ako viete, pozostáva z tabuliek, v ktorých sú už informácie uložené vo forme záznamov s niekoľkými poľami. Preto sa podľa hierarchie umiestňovania informácií najskôr naučíme, ako vykonávať typické operácie CRUD s tabuľkami.

Operácie CRUD, ak niekto nevie, sú operácie na vytváranie, čítanie, aktualizáciu a mazanie údajov z angličtiny. „Vytvoriť, prečítať, aktualizovať, vymazať“ (možno to budete potrebovať počas pohovorov).

Dovoľte mi pripomenúť, že ak chcete vykonať akcie s tabuľkami, musíte sa najprv pripojiť k databáze MySQL pomocou príkazu POUŽÍVAŤ.

Takže prvá vec na našom programe je príkaz na vytvorenie tabuľky MySQL v databáze cez príkazový riadok, ktorý vyzerá takto:

CREATE TABLE názov_tabuľky (názov_poľa_1 typ_pola_1, názov_poľa_2 typ_poľa_2(veľkosť_poľa_2), INDEX(názov_poľa_1), ...);

Ako viete, polí môže byť toľko, koľko chcete, ich typy môžu byť rôzne, rovnako ako prítomnosť indexov a kľúčov je voliteľná.

Mimochodom, ak chcete skopírovať tabuľku do inej databázy alebo jednoducho vytvoriť kópiu v aktuálnej databáze, pomôžu vám nasledujúce príkazy:

CREATE TABLE new_table_name LIKE old_table_name; INSERT new_table_name SELECT * FROM old_table_name;

Tieto príkazy vám umožňujú kopírovať štruktúru tabuľky a jej údaje spolu s indexmi tabuliek a spúšťačmi. Ak potrebujete iba údaje a štruktúru (názvy polí a ich dátové typy), vystačíte si s volaním jedného príkazu:

CREATE TABLE nový_názov_tabuľky AS SELECT * FROM starý_názov_tabuľky;

Ďalšou operáciou z bloku CRUD je čítanie. V prípade tabuliek sa pri čítaní zobrazí ich štruktúra. Na tento účel existujú štyri nasledujúce príkazy:

ZOBRAZIŤ CELÉ STĹPCE Z názov_tabuľky; DESCRIBE názov_tabuľky; EXPLAIN názov_tabulky; SHOW CREATE TABLE názov_tabuľky;

Prvý zobrazuje informácie o poliach databázovej tabuľky v tabuľkovej forme do konzoly MySQL s uvedením názvu poľa, typu údajov, prítomnosti kľúčov, predvolenej hodnoty atď. Pri použití kľúčového slova PLNÝ môžete získať rozšírené informácie vrátane privilégií pre každé pole pre aktuálneho používateľa, komentárov pre každé z nich a hodnoty kódovania.

Druhý a tretí príkaz sú jednoducho skrátené formy prvého príkazu bez rozšírených informácií. Prečo ich bolo treba vytvárať viac, to si ani neviem predstaviť... Žeby preto, aby sa bolo na čo pýtať? 🙂

Štvrtý príkaz vám okrem názvu, typov polí a ich predvolených hodnôt umožňuje získať hodnoty kľúčov tabuliek, tabuľkových motorov (InnoDB, MyISAM), kódovania atď.

Operácia aktualizácie v prípade tabuliek predstavuje zmenu ich štruktúry, t.j. rôzne akcie s poliami tabuľky MySQL:

ALTER TABLE názov_tabuľky DROP COLUMN názov_pola; ALTER TABLE názov_tabuľky ADD COLUMN názov_poľa VARCHAR(20); ALTER TABLE názov_tabuľky CHANGE starý_názov_poľa nový_názov_poľa VARCHAR(50); ALTER TABLE názov_tabuľky MODIFY názov_poľa VARCHAR(3);

Prvý príkaz umožňuje odstrániť konkrétne pole tabuľky, druhý umožňuje jeho pridanie, tretí umožňuje premenovať pole a súčasne zmeniť typ údajov v ňom uložených a štvrtý umožňuje zmeniť iba typ údajov. .

To isté možno urobiť s indexmi tabuliek pomocou do značnej miery podobných príkazov:

ALTER TABLE názov_tabuľky ADD UNIQUE INDEX názov_indexu (názov_poľa_1, ...); ALTER TABLE názov_tabuľky premenovať INDEX starý názov_indexu TO nový názov_indexu; ALTER TABLE názov_tabuľky DROP INDEX názov_indexu;

Nasledujúce príkazy vám umožňujú pridávať, premenovávať a odstraňovať indexy z tabuliek MySQL cez príkazový riadok. Mimochodom, na pridávanie a odstraňovanie indexov existuje iná alternatívna možnosť použitia nezávislých príkazov namiesto toho, aby ste to robili cez ALTER TABLE. Preto, ak chcete, môžete ich použiť:

CREATE UNIQUE INDEX index_name (field_name_1, ...) ON table_name; DROP INDEX názov_indexu ON názov_tabuľky;

Dané príkazy sú ekvivalentné prvému a poslednému z predchádzajúceho bloku. Bohužiaľ neexistuje samostatný príkaz na premenovanie indexu. A zmeniť typ indexu, bohužiaľ, v MySQL neexistuje vôbec žiadny spôsob. Jediným riešením je odstrániť index a vytvoriť ho znova s ​​požadovaným typom.

No a konečne sme sa dostali k poslednej operácii z bloku CRUD - vymazanie. Odstránenie tabuliek MySQL z databázy je veľmi jednoduché. Stačí spustiť nasledujúci príkaz v konzole MySQL:

DROP TABLE názov_tabuľky;

Niekedy v praxi nastanú situácie, ktoré znemožňujú vymazať tabuľku alebo zmeniť jej štruktúru. Spravidla je to spôsobené používaním cudzích kľúčov v databáze na vzájomné prepojenie tabuliek. Osobne som sa s touto situáciou stretol viackrát, ako som o tom hovoril na začiatku článku.

Ak vám teda MySQL pri odstraňovaní alebo aktualizácii štruktúry tabuľky alebo jej údajov vrátilo chybu s textom Nie je možné odstrániť alebo aktualizovať nadradený riadok: obmedzenie cudzieho kľúča zlyhá, potom sa vám budú hodiť nasledujúce informácie.

Aby sme mohli realizovať náš plán, musíme dočasne vypnúť kontrolu existencie cudzích kľúčov, vykonať potrebnú operáciu a potom kontrolu znova povoliť, pretože je to skutočne potrebné a vo väčšine prípadov vám umožňuje chrániť sa pred narušením integrity údajov.

V skutočnosti sú na tento účel potrebné cudzie kľúče MySQL.

Ak chcete odstrániť údaje, do ktorých zasahujú cudzie kľúče, musíte v konzole MySQL vykonať nasledujúce kroky:

SET FOREIGN_KEY_CHECKS=0; #required_mysql_command SET FOREIGN_KEY_CHECKS=1;

Mimochodom, ak chcete odstrániť cudzí kľúč, postup bude rovnaký ako pri odstraňovaní indexu:

ALTER TABLE názov_tabuľky DROP FOREIGN KEY názov_cudzieho_kľúča;

Ak chcete zistiť názov cudzieho kľúča tabuľky MySQL, použite už známy príkaz konzoly MySQL ZOBRAZIŤ VYTVORIŤ TABUĽKU.

Práca s údajmi tabuľky MySQL cez príkazový riadok

Pri tabuľkách CRUD sme sa pozreli na operácie v konzole MySQL. Pre úplný obraz v tomto cheat sheete chýbajú iba príkazy na prácu so samotnými údajmi uloženými v databázových tabuľkách. Myslím si, že veľa ľudí pozná tieto príkazy a používa ich v praxi, no aj tak vám ich ešte raz pripomeniem.

Operácie CRUD na prácu s údajmi tabuľky MySQL budú vyzerať takto:

INSERT INTO názov_tabuľky (pole1, pole2, ...) VALUES (hodnota poľa_1, hodnota poľa_2, ...); SELECT pole1, pole2, ... FROM názov_tabuľky; UPDATE názov_tabuľky SET pole1 = hodnota poľa 1, pole2 = hodnota poľa 2; DELETE FROM názov_tabuľky WHERE pole1 = hodnota poľa 1;

Vyššie uvedené príkazy zodpovedajú operáciám vytvárania, čítania, aktualizácie a odstraňovania údajov z databázových tabuliek MySQL. Pri použití SELECT a UPDATE je možné použiť aj kvalifikujúcu klauzulu WHERE, ktorú možno použiť na zadanie výberu údajov rovnakým spôsobom, ako je popísané pri použití DELETE.

Pri získavaní údajov z databázy pomocou SELECT môžete tiež použiť nasledujúcu možnosť na získanie hodnôt všetkých polí tabuľky:

SELECT * FROM názov_tabuľky;

Pri týchto operáciách je samozrejme možné použiť aj iné operátory okrem WHERE. Pri získavaní údajov pomocou SELECT je ich obzvlášť veľa: tu je UNION na kombinovanie výsledkov viacerých dopytov a rôzne typy JOIN. Vypisovanie všetkého je veľmi dlhé a pre mňa aj vás bude únavné to čítať.

Preto sa dohodnime: ak sa chcete o niečom dozvedieť viac, napíšte o tom do komentárov a pokúsim sa vám odpovedať. Alebo to urobia iní znalí členovia našej komunity. dobre? 😉

Preto sa týmto blokom zatiaľ nebudeme zaoberať.

Ak potrebujete odstrániť všetky údaje z tabuľky, môžete použiť nasledujúci príkaz MySQL:

TRUNCATE názov_tabuľky;

Pred jeho volaním, ako už bolo spomenuté, možno budete musieť vypnúť kontrolu cudzieho kľúča v prípade, že existujú súvisiace tabuľky MySQL, ktoré môžu brániť vykonaniu požadovanej akcie.

Ďalším zaujímavým bodom, ktorý tu treba poznamenať, je, že tento príkaz neresetuje počítadlo AUTO_INCREMENT, o ktorom je známe, že sa používa na automatické generovanie hodnoty poľa bez potreby manuálneho nastavenia.

Polia tohto typu sa najčastejšie používajú na generovanie hodnôt pre ID hlavného kľúčového poľa, ktoré sa používa na vytvorenie vzťahov medzi údajmi z rôznych tabuliek.

To znamená, že pred odstránením údajov tabuľky pomocou TRUNCATE (skrátiť). maximálna hodnota počítadla bola 1200, potom bude mať prvý záznam po tomto postupe hodnotu identifikátora 1201. V zásade je to v poriadku. Ak ste pre toto pole nastavili dostatočnú veľkosť, nebude vám hroziť skoré preplnenie hodnôt.

Avšak v niektorých prípadoch, keď má aplikačný kód nejaký druh väzby na hodnotu poľa, môže toto správanie spôsobiť nepríjemnosti.

Aby ste tomu zabránili, použite túto možnosť namiesto vyššie uvedeného príkazu:

TRUNCATE TABLE someTable RESTART IDENTITY;

Volba tohto príkazu TRUNCATE (skrátiť). vám umožní vynulovať hodnotu počítadla poľa z AUTOMATICKÝ PRÍRASTOK. Preto hodnota poľa prvého pridaného záznamu po tomto odstránení bude 1 namiesto 1201, ako v príklade vyššie.

Ako odstrániť databázu MySQL cez príkazový riadok

Životný cyklus práce s databázou sa končí a končí celkom logicky – jej vymazaním. Ak chcete vykonať túto operáciu v konzole MySQL, musíte spustiť nasledujúci príkaz (v tomto prípade nemusí byť databáza, ktorá sa má vymazať, vybratá príkazom POUŽÍVAŤ):

DELETE DATABASE názov_databázy;

Rovnakú akciu je možné vykonať pomocou pomôcky MySQL mysqladmin, ktorú som už spomenul na začiatku článku pri vytváraní databázy:

Mysqladmin drop názov_databázy;

Keď zavoláte príkaz, v konzole servera sa zobrazí nasledujúca správa:

Zrušenie databázy je potenciálne veľmi zlá vec.
Všetky údaje uložené v databáze budú zničené.

Naozaj chcete zrušiť databázu „database_name“?

V skratke ide o varovanie, že vymazanie databázy MySQL je veľmi zlý nápad. Vyžaduje sa aj potvrdenie akcie. Ak súhlasíš, napíš r a stlačte Zadajte na klávesnici, potom sa na obrazovke zobrazí nasledujúca správa (ak všetko prebehlo dobre, samozrejme):

Databáza "názov_databázy" bola zrušená

to je ono :)

Ako odstrániť používateľa MySQL v konzole

Teraz rovnaký osud postihne používateľa MySQL, ktorého sme vytvorili, aby sme vám ukázali, ako sa to robí. Pred odstránením by však bolo dobré skontrolovať, či požadovaný používateľ skutočne existuje.

Od MySQL 5.7 existuje jeden príkaz pre obe tieto akcie:

DROP USER IF EXISTS užívateľské meno;

Skoršie verzie MySQL vyžadovali dva samostatné príkazy:

GRANT POUŽITIE NA *.* TO "user_name"@"host_or_IP_address"; DROP USER "user_name"@"host_or_IP_address";

Žiaľ, v tomto prípade je správa o vykonaní operácie v konzole MySQL tradične neinformatívna 🙁 Preto, aby ste zistili, že používateľ MySQL bol vymazaný, môžete použiť nasledujúci príkaz, ktorý zobrazí zoznam všetkých používateľov existujúce na aktuálnom serveri MySQL:

SELECT User FROM mysql.user;

Táto možnosť príkazu zobrazí iba používateľské mená. Ak potrebujete vidieť hostiteľov, z ktorých sa môžu používatelia pripojiť k serveru, a zoznam privilégií, môžete príkaz zavolať v nasledujúcom tvare:

SELECT User, Host, Grant_priv FROM mysql.user;

V tabuľke mysql.user je tiež veľa ďalších polí, ktoré ukladajú iné typy privilégií a ďalšie informácie, ktorých úplný zoznam nájdete tu - https://mariadb.com/kb/en/library/mysqluser- stôl/

Nenechajte sa zmiasť, že ide o dokumentáciu pre MariaDB DBMS. Technicky je to rovnaké ako MySQL, pretože... MariaDB je len jej vetva alebo vidlica z anglického „fork“ - vetva, vidlica.

Prečo to bolo urobené - opäť netuším 🙂 Snáď každému hrdo vyhlásiť, že “mám svoj vlastný DBMS”?... Ale, úprimne povedané, nie som si veľmi vedomý presných motívov a rozdielov medzi MySQL a MariaDB. Preto, ak o tom niečo viete, bolo by zaujímavé prečítať si o tom v komentároch.

Ukončenie konzoly MySQL

To je všetko, skončil sa životný cyklus databázy a používateľa, ktorý sa začal ich vytvorením a skončil sa ich vymazaním. Preto príkazový riadok MySQL, s ktorým sme pracovali v konzole servera pomocou utility mysql, už to nepotrebujeme.

Zostáva len dostať sa z toho...

Zdá sa, že táto akcia je triviálna, ale mnohí v situácii, keď potrebujú ukončiť príkazový riadok MySQL, jednoducho zatvoria konzolu servera a znova ju otvoria. Môžete sa, samozrejme, správať takto, ale zaberá to ďalšie sekundy pracovného času a vždy, keď to potrebujete urobiť, budete podráždení.

Správne správanie v tejto situácii je len zavolať príkaz VÝCHOD v príkazovom riadku MySQL, po ktorom sa s nami služba zdvorilo rozlúči :)

A to je všetko 🙂 Takže nabudúce nebudete musieť vytvárať viaceré konzoly a znova ich otvárať zakaždým, keď potrebujete ukončiť MySQL v konzole a znova k nej pristupovať, aby ste mohli spravovať server.

To je všetko, čo som vám dnes chcel povedať. Dúfam, že môj cheat sheet na prácu s príkazovým riadkom MySQL cez konzolu bude užitočný nielen mne, ale aj vám.

Keď už hovoríme o praktickom použití informácií uvedených v článku, rád by som vám pripomenul, že vyššie uvedené konštrukcie možno použiť nielen v príkazovom riadku MySQL a konzole servera, ale aj v konzole phpMyAdmin a inom softvéri, ktorý poskytuje takúto príležitosť.

Či ho používate alebo nie, je vaša vec. Ale, ako som povedal na samom začiatku článku, existujú situácie, kedy vám používanie konzoly MySQL môže ušetriť čas a stres. Či používať príkazový riadok každý deň alebo nie, je čisto vecou vkusu a individuálnych preferencií.

Do komentárov napíšte, ktoré príkazy používate najčastejšie. Alebo možno poznáte nejaké iné triky. V každom prípade sa podeľte o svoj názor s ostatnými a pokračujte v konverzácii v komentároch ostatných používateľov.

Sľubujem, že sa pri tom naučíte veľa nových vecí, tak ako ja pri písaní každého môjho článku :)

To je všetko! Veľa šťastia a vidíme sa znova :)

P.S.: ak potrebujete webovú stránku alebo potrebujete vykonať zmeny na existujúcej, ale nie je na to čas ani chuť, môžem ponúknuť svoje služby.

Viac ako 5 rokov skúseností profesionálny vývoj webových stránok. Pracovať s PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagovať, Hranatý a ďalšie technológie vývoja webu.

Nižšie je uvedený zoznam najužitočnejších a často používaných príkazov MySQL s príkladmi.

mysql na začiatku riadku znamená, že príkaz sa vykoná po prihlásení MySQL.

Symbol # alebo $ na začiatku riadku znamená, že príkaz sa vykoná z príkazového riadku.

Ak chcete skontrolovať stav servera MYSQL urobiť:

Pre FreeBSD:

# stav služby mysql-server

V CentOS/RHEL:

# stav mysqld služby

MySQL z konzoly, ak je server MySQL je na tom istom hostiteľovi:

Na pripojenie k serveru MySQL z konzoly, ak je server MySQL sa nachádza na vzdialenom hostiteľovi db1.example.com:

$ mysql -u používateľské meno -p -h db1.example.com

Práca s databázami a tabuľkami - prezeranie, mazanie, úprava záznamov. Konzola

Vytvorte databázu na MySQL server:

Mysql vytvoriť databázu

Zobraziť zoznam všetkých databáz na serveri MySQL:

použitie mysql;

Zobraziť všetky tabuľky v databáze:

Mysql zobraziť tabuľky;

Pozrite si formát tabuľky v databáze:

mysql popísať;

Vymazať databázu:

Databáza kvapiek Mysql;

Odstráňte tabuľku z databázy:

Mysql drop tabuľka;

Zobraziť celý obsah tabuľky:

Mysql SELECT * FROM;

Zobraziť stĺpce a obsah stĺpcov vo vybratej tabuľke:

Mysql zobrazuje stĺpce z ;

Zobraziť riadky v konkrétnej tabuľke obsahujúcej „čokoľvek“:

Mysql SELECT * FROM WHERE = "čokoľvek";

Zobraziť všetky záznamy v konkrétnej tabuľke obsahujúcej „Bob“ a telefónne číslo „3444444:

Mysql SELECT * FROM WHERE meno = "Bob" AND phone_number = "3444444";

Zobraziť všetky záznamy, NIE obsahujúce meno „Bob“ a telefónne číslo „3444444“, zoradené podľa poľa telefónne číslo:

Mysql SELECT * FROM WHERE meno != " Bob " AND phone_number = " 3444444 " objednávka podľa telefónneho_čísla;

Zobraziť všetky záznamy začínajúce písmenami „bob“ a telefónnym číslom „3444444“ v konkrétnej tabuľke:

Mysql SELECT * FROM WHERE meno ako "Bob %" AND phone_number = "3444444";

Zobraziť všetky položky začínajúce písmenami „bob“ a telefónnym číslom „3444444“, pričom počet položiek je obmedzený na 1 až 5:

Mysql SELECT * FROM WHERE meno ako "Bob %" AND phone_number = "3444444" limit 1,5;

Používanie regulárnych výrazov ("REGEXP BINARY") na vyhľadávanie záznamov. Napríklad pri vyhľadávaní bez rozlišovania malých a veľkých písmen nájdite všetky záznamy začínajúce písmenom A:

Mysql SELECT * FROM WHERE rec RLIKE "^a";

Zobraziť všetky jedinečné záznamy:

Mysql SELECT DISTINCT FROM ; mysql SELECT , FROM ORDER BY DESC;

Zobrazte počet riadkov v tabuľke:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Odstránenie stĺpca:

Mysql alter table drop column ;

Pridanie stĺpca do databázy:

Mysql alter table pridať stĺpec varchar(20);

Zmena názvu stĺpca:

Zmena tabuľky Mysql varchar(50);

Vytvorte stĺpec s jedinečným názvom, aby ste sa vyhli duplicitným názvom:

Mysql alter table add unique();

Zmena veľkosti stĺpca:

Mysql zmeniť tabuľku upraviť VARCHAR(3);

Odstránenie stĺpca z tabuľky:

Mysql alter tabuľka drop index;

Mysql LOAD DATA INFILE " /tmp/filename.csv " nahradiť DO TABUĽKOVÝCH POLI UKONČENÝCH "," RIADKY UKONČENÉ "n" (pole1,pole2,pole3);

Používatelia servera MySQL, heslá - pridávanie, zmena používateľov a hesiel. Konzola

Vytvorenie nového užívateľa - pripojenie k serveru MySQL ako root, prepnúť do databázy, pridať používateľa, aktualizovať oprávnenia:

# mysql -u root -p mysql použite mysql; mysql INSERT INTO user (Host,User,Password) VALUES("%"," username ", PASSWORD(" password ")); mysql flush privilégiá;

Zmena hesla používateľa z konzoly na vzdialenom hostiteľovi db1.example.org:

# mysqladmin -u username -h db1.example.org -p heslo " nove-heslo "

Zmena hesla používateľa z konzoly MySQL- pripojiť sa ako root, aktualizovať heslo, aktualizovať oprávnenia:

# mysql -u root -p mysql NASTAVTE HESLO PRE " užívateľa "@" názov hostiteľa " = HESLO(" heslo tu "); mysql flush privilégiá;

Obnovenie/zmena hesla koreňového servera MySQL- zastaviť MySQL, spustite bez tabuliek privilégií, pripojte sa ako root, nastavte nové heslo, ukončite a reštartujte MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql použite mysql; mysql update user set password=PASSWORD(" newrootpassword ") kde User="root"; mysql; splachovacie privilégiá; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Nastavte heslo root, ak existuje heslo root.

# mysqladmin -u root heslo nové heslo

Aktualizujte heslo root:

# mysqladmin -u root -p staré heslo nové heslo

Nastavenie práva na pripojenie k serveru z hostiteľa localhost s heslom "passwd" - pripojenie k subrootu, prepnutie do databázy, nastavenie privilégií, aktualizácia privilégií:

# mysql -u root -p mysql použite mysql; mysql udeľuje použitie na *.* pre bob @localhost identifikovaný " passwd "; mysql flush privilégiá;

Nastavenie používateľských oprávnení na používanie databázy – pripojenie ako root, prepnutie do databázy, nastavenie oprávnení, aktualizácia oprávnení:

# mysql -u root -p mysql použite 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 privilégiá;

Mysql udelí všetky privilégiá na databasename .* užívateľovi @localhost; mysql flush privilégiá;

Aktualizácia údajov v databáze:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" kde = užívateľ";

Odstránenie riadku v tabuľke:

Mysql DELETE from where = "čokoľvek";

Aktualizácia práv v databáze:

Mysql flush privilégiá;

Zálohy - vytváranie, obnova databáz. Konzola

Vytvorte záložnú kópiu (výpis) všetkých databáz do súboru alldatabases.sql:

# mysqldump -u root -p heslo -opt ; /tmp/alldatabases.sql

Zálohujte jednu databázu do súboru databasename.sql:

# mysql dump -u užívateľské meno -p heslo -databases databasename ; /tmp/databasename.sql

Zálohujte jednu tabuľku do súboru databasename.tablename.sql:

# mysql dump -c -u užívateľské meno -p heslo názov databázy názov tabuľky ; /tmp/databasename.tablename.sql

Obnovenie databázy (alebo tabuľky) zo zálohy:

# mysql -u užívateľské meno -p heslo názov databázy< /tmp/databasename.sql

Tvorba databázových tabuliek. Konzola

názvy stĺpcov sú uvedené malými písmenami;
VEĽKÉ písmená - typy a atribúty stĺpcov;
v (zátvorkách) - hodnota typu stĺpca.

Vytvorte tabuľku, príklad 1:

mysql CREATE TABLE (krstné meno VARCHAR(20), stredné počiatočné VARCHAR(3), priezvisko VARCHAR(35), prípona VARCHAR(3), officeid VARCHAR(10), užívateľské meno VARCHAR(15), užívateľské meno VARCHAR(8), email VARCHAR(35 ), telefón VARCHAR(25), skupiny VARCHAR(15), dátumová pečiatka DATE, časová pečiatka TIME, pgpemail VARCHAR(255));

Vytvorte tabuľku, príklad 2:

Mysql vytvoriť tabuľku (osoba INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, meno VARCHAR(35), stredné meno VARCHAR(50), priezvisko VARCHAR(50) predvolené "bato");

Nástroj príkazového riadka mysql je jednoduchý SQL shell (s možnosťami knižnice readline projektu GNU). Podporuje interaktívne a neinteraktívne režimy. V interaktívnom režime sú výsledky dotazu prezentované vo formáte ASCII. Pri použití v neinteraktívnom režime (napríklad ako filter) sa výsledok zobrazí v textovom formáte oddelenom tabulátormi (výstupný formát možno zmeniť pomocou možností príkazového riadka). Skripty je možné spustiť, ako je uvedené nižšie:

Shell> mysql database output.tab

Ak sa vyskytnú problémy z dôvodu nedostatku pamäte na danom klientovi, použite možnosť --quick! To prinúti mysql použiť funkciu mysql_use_result() namiesto funkcie mysql_store_result() na získanie výsledného výberu údajov.

Používanie mysql je veľmi jednoduché. Spustite databázu mysql alebo mysql --user=meno_používateľa --password=databázu vášho_hesla e. Zadajte príkaz SQL priamo do príkazového riadka a zakončite ho jedným z nasledujúcich znakov: `;" , `\g" alebo `\G" a stlačte kláves ``Enter".

Pomôcka príkazového riadka mysql podporuje nasledujúce možnosti:

Pomocník Zobrazí pomocné informácie o používaní programu a ukončí ho. -A, --no-auto-rehash Vypne automatickú rehash. rehash by sa mal použiť na získanie hash tabuliek a polí. Vďaka tomu sa mysql spustí rýchlejšie. --prompt=... Nastaví výzvu na zadanie príkazov v zadanom formáte. -b, --no-beep Vypne chybové pípnutie. -B, --batch Výstup má za následok dávkový režim oddelený tabulátormi, každý riadok na novom riadku. Súbor histórie sa nepoužíva. --character-sets-dir=... Adresár, kde sa nachádzajú znakové sady. -C, --compress Používa kompresiu údajov v protokole server/klient. -#, --debug[=...] Debug log. Predvolená hodnota je "d:t:o,/tmp/mysql.trace". -D, --database=... Názov databázy, ktorá sa má použiť. Väčšinou sa používa v konfiguračnom súbore `my.cnf. --default-character-set=... Nastaví predvolenú znakovú sadu. -e, --execute=... Vykonajte príkaz a ukončite program (výsledok ako pre --batch -E, --vertical Vytlačiť výsledky dotazu (reťazce) zvisle Môžete vytvoriť výstup podobným spôsobom bez tohto parametra, pričom príkazy ukončíte s \G -f, --force Pokračovať v spracovaní, aj keď . Zistila sa chyba SQL -g, --no-named-commands Zakáže pomenované príkazy Používajte iba príkazy v tvare \* alebo používajte pomenované príkazy len na začiatku riadku končiaceho znakom `;". . Od verzie 10.9 klient začína s touto možnosťou, zahrnuté predvolene! S voľbou -g však dlhé príkazy stále fungujú od prvého riadku. -G, --enable-named-commands Povolí pomenované príkazy. Dlhé príkazy sú povolené, rovnako ako skrátené príkazy ako \*. -i, --ignore-space Ignoruje medzeru za názvami funkcií. -h, --host=... Pripojte sa k databáze na zadanom hostiteľovi. -H, --html Tlačový výstup ako HTML. -L, --skip-line-numbers Preskočiť čísla riadkov kvôli chybám. Užitočné na porovnávanie výsledkových súborov, ktoré obsahujú chybové hlásenia. --no-pager Vypne pager (pager) a zapíše výsledok do stdout (na Unixe). Pozri tiež príkaz \h (online pomoc). --no-tee Uzamkne výstupný súbor. Pozri tiež príkaz \h (online pomoc). -n, --unbuffered Vymazať vyrovnávaciu pamäť po každej požiadavke. -N, --skip-column-names Preskočí názvy stĺpcov vo výsledkoch. -O, --set-variable var=option Nastaví hodnotu premennej. Zoznam použitých premenných sa zobrazí cez --help. -o, --one-database Aktualizuje iba predvolenú databázu. Umožňuje preskočiť aktualizácie inej databázy v protokole aktualizácií. --pager[=...] Nastavuje typ výstupných údajov. Štandardne je to premenná prostredia PAGER. Jeho možné hodnoty sú menej, viac, mačka [> názov súboru] atď. Pozri tiež príkaz \h (online pomoc). Táto možnosť nefunguje v dávkovom režime. Pager funguje iba pod Unixom. -p, --password[=...] Heslo používané pri pripájaní k databázovému serveru. Ak v príkazovom riadku nie je zadané heslo, používateľ ho vyzve. Pri použití krátkej formy -p nenechávajte medzeru medzi parametrom a hodnotou hesla. -P --port=... Číslo TCP/IP portu používaného na pripojenie. -q, --quick Neukladať výsledky do vyrovnávacej pamäte. Vytlačte ho riadok po riadku tak, ako prichádza zo servera. Ak je výstup pozastavený, môže to spomaliť rýchlosť servera. Súbor histórie sa nepoužíva. -r, --raw Zobraziť hodnoty stĺpcov bez akejkoľvek konverzie. Používa sa s --batch . -s, --silent Tichý režim. Zobrazovať iba chybové hlásenia. -S --socket=... Súbor soketu použitý na pripojenie. -t --table Výstup výsledku vo formáte tabuľky. Predvolene nastavené pre nedávkový režim. -T, --debug-info Vypíše niektoré informácie o ladení pri ukončení programu. --tee=... Pridajte niečo do výstupného súboru. Pozri tiež príkaz \h (online pomoc). Táto možnosť nefunguje v dávkovom režime. -u, --user=# MySQL užívateľské meno, ak tento užívateľ nie je v danom čase aktívny. -U, --safe-updates[=#], --i-am-a-dummy[=#] Umožňuje iba operácie UPDATE a DELETE pomocou kláves. Ďalšie informácie o tejto možnosti sú uvedené nižšie. Tento parameter môžete resetovať nastavením hodnoty argumentu --safe-updates=0 v konfiguračnom súbore `my.cnf' -v, --verbose Pokročilejší režim výstupu (-v -v -v poskytuje výstupný formát tabuľky). -V , --version Zobrazí informácie o verzii a ukončí program -w, --wait Ak spojenie so serverom zlyhá, počkajte a skúste ho obnoviť namiesto prerušenia práce.

Nasledujúce premenné je možné nastaviť aj pomocou volieb príkazového riadka -O alebo --set-variable:

Ak do príkazového riadku napíšete help, mysql zobrazí zoznam príkazov, ktoré podporuje:

Mysql> help Príkazy MySQL help (\h) Vypíše daný text. ? (\h) Synonymum pre pomoc. clear (\c) Príkaz Clear. pripojiť (\r) Znova sa pripojte k serveru. Ďalšie argumenty sú db a host. edit (\e) Upravte aktuálny príkaz pomocou $EDITOR. ego (\G) Odoslať aktuálny MySQL príkaz na server a zobraziť výsledok vertikálne. exit (\q) Ukončenie programu. Rovnako ako prestať. go (\g) Odoslať aktuálny príkaz MySQL na server. nopager (\n) Blokovať pager, výstup cez stdout. note (\t) Nepridávajte položky do výstupného súboru výstupného súboru. pager (\P) Nastavte PAGER . Zobraziť výsledky dopytu cez PAGER. print (\p) Vytlačí aktuálny príkaz. prompt (\R) Zmeňte formát výzvy na zadávanie príkazov mysql. quit (\q) Ukončite program. rehash (\#) Obnovenie hašovacej tabuľky. source (\.) Spustite súbor so skriptom SQL. Ako argument uveďte názov súboru. status (\s) Získajte informácie o stave servera. tee (\T) Nastavte parameter výstupného súboru. Pridajte niečo do daného výstupného súboru. použiť (\u) Použiť inú databázu. Ako argument uveďte názov databázy.

Príkaz pager funguje iba v systéme Unix.

Výsledkom toho je nasledovné:

  • Nie je dovolené vykonávať príkazy UPDATE alebo DELETE, pokiaľ nie sú špecifikované obmedzenia kľúčov v klauzule WHERE. Môžete však vynútiť vykonanie príkazov UPDATE / DELETE pomocou príkazu LIMIT: UPDATE názov_tabulky SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Všetky výsledky, ktoré sú príliš veľké, sú obmedzené riadkami #select_limit#.
  • SELECTy, ktorých vykonanie môže vyžadovať viac ako #max_join_size# kombinácií riadkov, budú prerušené.

Niekoľko užitočných tipov na používanie klienta mysql:

Niektoré údaje sú čitateľnejšie pri vertikálnom výstupe namiesto bežne používaného horizontálneho výstupného okna. Napríklad text, ktorý je dlhší ako široký a obsahuje veľa nových riadkov, je často oveľa ľahšie čitateľný vo vertikálnom zobrazení.

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith píše: Thimble> Ahoj. Myslím, že je to dobrý nápad. Pozná niekto UTF-8 Thimble> alebo Unicode? V opačnom prípade to dám do svojho zoznamu TODO a uvidím, čo sa stane Náprstok> Áno, urobte to. S pozdravom, Monty súbor: inbox-jani-1 hash: 190402944 1 riadok v sade (0,09 s)

  • Na prihlásenie môžete použiť možnosti príkazu tee. Môže sa spustiť pomocou voľby --tee=... pre mysql alebo interaktívne z príkazového riadku zadaním príkazu tee. Všetky údaje zobrazené na obrazovke sa tiež pridajú k určenému súboru. To môže byť veľmi užitočné na účely ladenia programu. Pomôcku tee je možné vypnúť z príkazového riadku príkazom note. Opätovné spustenie príkazu tee znova povolí protokolovanie. Ak parameter príkazu tee nie je zadaný, použije sa predchádzajúci súbor. Všimnite si, že príkaz tee zapíše výsledky do súboru po každom vykonanom príkaze, tesne predtým, ako sa objaví príkazový riadok na zadanie ďalšieho príkazu.
  • Použitím voľby --pager[=...] bolo možné interaktívne prezerať alebo vyhľadávať výsledky pomocou unixových programov menej, viac alebo iných podobných. Ak v tomto parametri explicitne nešpecifikujete argument, klient mysql vyhľadá premennú prostredia PAGER a nastaví hodnotu na pager . Program pager možno spustiť aj z interaktívneho príkazového riadku príkazom pager a zastaviť príkazom nopager. Príkaz môže mať argument, ktorý je voliteľný; pager bude nastavený na hodnotu tohto argumentu. Príkaz pager funguje iba na Unixe, pretože používa funkciu popen(), ktorá nie je dostupná v systéme Windows. V systéme Windows môžete namiesto toho použiť parameter tee, hoci v niektorých situáciách je to menej pohodlné ako použitie príkazu pager.
  • Niekoľko tipov k príkazu pager: Môže sa použiť na zápis do súboru: mysql> pager cat > /tmp/log.txt a výsledky sa odošlú iba do súboru. Programy volané príkazom pager môžu akceptovať akékoľvek platné voľby: mysql> pager menej -n -i -S Venujte zvláštnu pozornosť voľbe -S v príklade vyššie. Môže to byť veľmi užitočné pri prezeraní výsledkov. Skúste ho použiť s horizontálnym výstupom (príkazy ukončite s "\g" alebo ";") a s vertikálnym výstupom (príkazy ukončite s "\G"). Veľmi objemné výstupné výsledky sú niekedy ťažko čitateľné z obrazovky, v tomto prípade vám príkaz less s voľbou -S umožní interaktívne zobraziť výsledky zľava doprava a keď sa objavia čiary s dĺžkou väčšou ako je šírka na obrazovke, ich výstup bude naďalej vychádzať z nového riadku. Dátový výstup je v takýchto prípadoch čitateľnejší. Keď interaktívne zavoláte príkaz less s voľbou "-S", môžete prepnúť jeho prevádzkový režim (zapnúť/vypnúť) z príkazového riadku. Viac informácií o less nájdete v popise príkazu "h".
  • Na záver poznamenávame (ak ste to ešte nepochopili z predchádzajúcich príkladov), že je možné kombinovať veľmi zložité metódy spracovania výsledkov. V nasledujúcom príklade sa teda výsledky odošlú do dvoch rôznych adresárov namontovaných na dvoch rôznych pevných diskoch na /dr1 a /dr2, a napriek tomu výsledky možno vidieť na obrazovke pomocou príkazu less: mysql> pager cat | tričko /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | menej -n -i -S
  • Vyššie uvedené funkcie je možné aj kombinovať: spustením tee a nastavením pagera na menej môžete zobraziť výsledky pomocou príkazu Unix less a súčasne zapisovať do súboru. Rozdiel medzi obslužným programom Unix tee používaným v programe pager a vstavaným príkazom tee v klientovi mysql je v tom, že vstavaný príkaz tee funguje, aj keď utilita tee nie je v Unixe dostupná. Zabudovaný príkaz tee tiež zaznamenáva všetko, čo sa zobrazuje na obrazovke, zatiaľ čo utilita Unix tee používaná s pagerom to v dostatočnej miere nerobí. Posledným, ale dôležitým bodom je, že interaktívny príkaz tee je vhodnejší na zapínanie/vypínanie režimov, ak niekedy potrebujete túto funkciu vypnúť pri zápise do súboru.

Formát výzvy môžete zmeniť na príkazovom riadku klienta mysql.

Možné sú nasledujúce možnosti pozvania:

Možnosť Popis
\vmysqld verzia
\dnázov použitej databázy
\hnázov hostiteľa, ku ktorému sa chcete pripojiť
\pčíslo portu, cez ktorý sa uskutočňuje spojenie
\uPoužívateľské meno
\Uúplná adresa username@host
\\ spätná lomka `\"
\nznak nového riadku
\ttabelácia
\ priestor
\_ medzera s podčiarkovníkom
\Rvojenské časové pásmo (0-23)
\rčas podľa štandardného časového pásma (1-12)
\mminút
\ydvojročné kategórie
\Yštvorročné kategórie
\Dúplný formát dátumu
\ssekúnd
\wdeň v týždni vo formáte troch písmen (Po, Ut, ...)
\PČas pred poludním/po poludní (dopoludnia/popoludní)
\omesiac v číselnom formáte
\Omesiac vo formáte troch písmen (január, február, ...)
\cPočítadlo, ktoré počíta počet zadaných príkazov

Znak „\“, za ktorým nasleduje akékoľvek iné písmeno, toto písmeno jednoducho dopĺňa.

Možnosti pozvánky môžete nastaviť nasledujúcimi spôsobmi:

V premenných prostredia Pre reťazec výzvy môžete nastaviť premennú prostredia MYSQL_PS1. Napríklad: shell> export MYSQL_PS1="(\u@\h) [\d]> " „my.cnf“ `.my.cnf" Voľbu výzvy môžete nastaviť v ľubovoľnom konfiguračnom súbore MySQL v skupine mysql. Napríklad: prompt=(\u@\h) [\d]>\_ Na príkazovom riadku Voľbu --prompt môžete nastaviť z príkazového riadku mysql. Napríklad: shell> mysql --prompt="(\u@\h) [\d]> " (používateľ@hostiteľ) > Interaktívne Na interaktívnu zmenu nastavení výzvy môžete použiť aj príkaz prompt (alebo \R). Napríklad: výzva mysql> (\u@\h) [\d]>\_ PROMPT nastavená na "(\u@\h) [\d]>\_" (používateľ@hostiteľ) > (používateľ@hostiteľ) > prompt Vráťte sa k pôvodným (predvoleným) nastaveniam PROMPT v utilite mysql> mysql>