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í.
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.
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ů.
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.
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.