Součástí distribuce MySQL pod Linux i pod Windows je řádkový klient mysql(.exe) a řádkový administrátor mysqladmin(.exe). Oba soubory se nacházejí v podadresáři /bin instalace SQL serveru.

Řádkový klient

Následující příklady uvedu pro případ operačního systému Windows. Vše je v případě Linuxu téměř shodné. Otevřete „Příkazový řádek“, přejděte do podadresáře /bin a spusťte mysql.exe. Kompletní syntaxe příkazu je:

mysql.exe -h název_počítače -u jméno_uživatele -p heslo_uživatele název_databáze

Samozřejmě ne všechny parametry musíte uvést. Výchozí název počítače je localhost, výchozí uživatelské jméno je to, pod kterým jste přihlášeni do operačního systému. Výchozí heslo, tj. když neuvedete část „-p heslo_uživatele“, je prázdné heslo (přihlašování bez udání hesla). Pro spuštění na místním počítači a pod uživatelem „root“, který se přihlašuje k databázi bez hesla a pro zvolení „mysql“ jako aktivní databáze, pište:

mysql.exe -u root mysql

V řádkovém klientu můžete přímo zadávat příkazy nebo SQL dotazy. Příkazy odešlete ke zpracování odklepnutím řádku. SQL dotazy mohou být samozřejmě delší, než na jeden řádek. Celý napsaný řetězec na více řádcích se ukládá do bufferu. Buffer pošlete ke zpracování sekvencí „\g“ nebo poslední řádek prostě ukončete středníkem:

MySQL klient

Příkazem „show tables“ zobrazíte všechny tabulky v aktivní databázi. Vždy je aktivní právě jedna. Seznam všech databází, ke kterým má daný uživatel přístup, získáte „show databases“. Pokud se při psaní spletete, použijte „\c“ pro smazání ještě neodeslaného bufferu ke zpracování.

MySQL klient

Ke změně aktivní databáze je příkaz „\u“. Uživatel musí mít pochopitelně privilegia k přístupu.

\u ajax
… změna databáze na „ajax“
\. d:\ajax\sql\ajax.sql
… provedení skriptu „ajax.sql“

Druhý řádek, příkaz „\.“, spouští SQL skript. Soubor zadávejte nejlépe s úplnou cestou. Obsahem jsou většinou SQL dotazy oddělené středníkem. Máte ale možnost uvést i příkazy klienta („\u“, „\#“, …), které tentokrát také oddělujte středníkem. Tyto SQL skripty bych přirovnal k dávkám (batch) známým z příkazových řádků UNIXu i MS-DOSu. Skript „ajax.sql“ přepne pro jistotu ještě jednou na databázi „ajax“, vytvoří tabulku „tabulka“ a vypíše stavové informace SQL serveru („\s“):

\u ajax;
create table tabulka (sloupec int);
# tady je poznámka v SQL skriptu
\s

Standardně, při ukončení příkazu pomocí „\g“ nebo „;“, se výpis tabulky výsledků formátuje ve formě tabulky. Někdy je takový výpis nečitelný, především při větším počtu sloupců nebo při delších záznamech ve sloupcích. Pokud chcete na výstupu každý sloupec na novém řádku, ukončete příkaz pomocí „\G“.

MySQL klient

Nad databází „mysql“ byl spuštěn dotaz „select * from user“, ukončený „\G“. Existuje ještě několik dalších příkazů. Výpis všech je k dispozici v helpu „\h“. Tam se také dočtete, že pro příkaz „\.“ existuje ekvivalent „source“, pro „\u“ je to „use“ atd. Ze řádkového klienta se odhlašte „\q“ nebo „exit“ nebo „quit“.

Řádkový administrátor

mysqladmin(.exe) již znáte. Pomocí něj se ukončuje běh SQL serveru. Jeho syntaxe je následující:

mysqladmin.exe -h název_počítače -u jméno_uživatele -p heslo_uživatele seznam_příkazů

Příkazy uskutečňované přes mysqladmin nesouvisí s žádnou konkrétní databází. Mají působnost na celý SQL server. Práva k jejich vykonání jsou zaznamenána v tabulce „user“ databáze „mysql“ ve sloupcích „Reload_priv“, „Shutdown_priv“ a „Process_priv“. Pro bližší informace o privilegiích uživatelů čtěte Uživatelé a práva v MySQL. „seznam_příkazů“ může obsahovat jeden nebo více z následujících:

create jméno_databáze vytvoření nové databáze
drop jméno_databáze smazání existující databáze
flush-hosts flush všech hostů v cache
flush-logs flush všech logů
flush-status vyčištění stavových proměnných
flush-tables flush všech tabulek
flush-threads flush všech vláken v cache
flush-privileges znovunačtení tabulek privilegií
kill id, id,… ukončení vláken s čísly id, id,…
password nové_heslo změna hesla
processlist seznam všech běžících vláken na serveru i s jejich id
reload znovunačtení tabulek privilegií
refresh provedou se flush-tables a flush-logs
shutdown ukončení běhu serveru
status krátká zpráva o stavu serveru
variables výpis serverových proměnných

Běžným úkolem na SQL serveru je ukončení vlákna, kde běží nějaký „neposlušný“ zatěžující dotaz. Nejprve vypište seznam vláken a pak příslušná z nich ukončete:

mysqladmin.exe -u root -p heslo_roota processlist
… výpis seznamu vláken
mysqladmin.exe -u root -p heslo_roota kill id_vlákna
… násilné ukončení vlákna

A na příkazovém řádku to vypadá asi takto:

MySQL administrátor

Pokud se někomu příliš nelíbí práce na příkazové řádce, nemusí zoufat. Existuje grafický klient i grafický administrátor MySQL pod Windows. O tom však až příště. Určitě se ale v praxi dostanete do situace, kdy nebude jiná možnost, než práce na příkazové řádce.

Žádný příspěvek v diskuzi

Odpovědět