MySQL (60) - řádkový klient

Pojďme se dnes podívat na možnosti řádkového klienta, který je s MySQL dodáván.

24.2.2006 06:00 | Petr Zajíc | přečteno 20553×

MySQL se dá ovládat různě. Pomocí frontendů jako je PhpMyAdmin, prostřednictvím internetového portálu, prostřednictvím desktopové aplikace a rovněž celou řadou administračních nástrojů. Dnes se zaměříme na textového klienta mysql, který, jak nejspíš zjistíte může být docela efektivní.

Řádkový klient mysql

Používat řádkového klienta může někomu připadat velmi středověké, protože grafických nástrojů na správu MySQL je na světě opravdu hodně. Nicméně, možná zjistíte, že umět pracovat se základními nástroji může být velké plus. Proč? Z několika dobrých důvodů:

Aby nedošlo k matení pojmů uveďme to, co jsme již zmínili v díle o instalaci mysql. Server mysql se jmenuje mysqld, řádkový klient pak mysql. Dnes hovoříme o klientovi, takže pozor na to. Nejjednodušší použití klienta je prostě ho spustit:

mysql

V takovém případě se mysql klient pokusí přihlásit pod aktuálním uživatelem na místní server s prázdným heslem. Jak asi tušíte, to není příliš užitečné, protože to v mnoha případech nebude fungovat. Klidně se proto naučte z hlavy následující přepínače (jsou intuitivní):

Přepínač
Význam
-h
Hostitel, k němuž se chceme připojit. Zadává se IP adresa nebo název stroje (místní systém musí být schopen přeložit název stroje na adresu).
-u
Název uživatele, pod nímž se chceme k mysql připojit. Pozor, nemusí souviset s názvem uživatele, který provádí příkaz mysql.
-p
Heslo. Pokud se nezadá, počítač se na něj při přihlašování zeptá, což je mimochodem mnohem bezpečnější než ukládat heslo jako součást textového souboru.
-P
Port. Hodí se, pokud na databázovém serveru běhá více instancí MySQL (například 4.x a 5.x). Jinak je výchozím portem 3306 a většinou to vyhoví.

Ukázkové přihlášení by tedy mohlo vypadat nějak takto:

mysql -h 192.168.0.1 -u root -P 3306 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 25 to server version: 4.1.10a-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Pozn.: Jak vidíte, z Linuxu se lze přihlásit na server běžíci na Windows. Jde to i naopak. Ve Windows byste řádkového klienta našli pod názvem mysql.exe ve složce bin instalace MySQL serveru.

Řádkový klient se po přihlášení přepne do "naslouchacího" režimu a očekává Vaše příkazy. Můžete použít libovolné SQL příkazy, které jste se naučili (SELECT, INSERT, CREATE TABLE a tak dále) plus některé příkazy pro ovládání řádkového klienta.

Zadávání SQL

Důležité: Na serveru může být více databází a před zadáváním příkazů je třeba se ujistit, že pracujete s tou správnou. Mohou Vám pomoci následující příkazy:

show databases;
use test;

První ukáže seznam dostupných databází, druhý pak přepne do konkrétní databáze. Příkazy se v mysql ukončují středníky. Pokud příkaz neukončíte a odentrujete, mysql přejde na další řádek a trpělivě čeká na ukončení příkazu. Dlouhé příkazy tak nemusíte vtěsnat na jediný řádek.

mysql> select 1
    ->

Příkazy SELECT produkují data v tabulkové formě, akční příkazy pak uvádějí počet chyb, počet varování a počet řádků ovlivněných posledním dotazem. Při běžné práci je příjemným zjištěním fakt, že mysql podporuje historii příkazů tak, jak jste zvyklí z příkazové řádky linuxu. To se hodí například při ladění výběrových dotazů.

Příkazy pro ovládání řádkového klienta

Fungování klienta si můžete nastavit k obrazu svému. Slouží k tomu sada vestavěných příkazů. Tu si nemusíte pamatovat, neb ji lze zobrazit použitím vestavěného ;-)) příkazu help. Následující výpis je zkrácen:

mysql> help
clear     (\c) Clear command.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set query delimiter.
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute a SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.

Praxe

Pro praktické využití řádkového klienta bych měl dva tipy. Předně, tohle je přesně ten typ software, který se naučíte ovládat prostě tím, že ho budete používat. Nemá smysl biflovat se jedlotlivé příkazy nebo přepínače, s nimiž může být řádkový klient spouštěn. Člověku to přejde do krve po několikátém použití. A druhý tip: Mezi příkazy klienta je i source (viz výše). Ten slouží k převzetí následujících příkazů ze souboru.

Za domácí úkol si můžete vyzkoušet importování velkého souboru obsahujícího příkazy SQL nejprve přes PhpMyAdmin a potom přes řádkového klienta. Budete překvapeni, o kolik je import pomocí řádkového klienta rychlejší. A to je důvod, proč jej k importům tak často používám.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1114